私は非常に単純なチェスプログラムを作っています。私は部分的にやっているナイトの動きを作っていますが、私は騎士がボードから出るのを避ける方法に固執しています。 R =行、C =列、V =ボード(8×8)チェス(騎士)の動き、ボードを外すことを避ける
マイコード:
public static boolean[][] knightMoves(int r, int c, boolean[][] v){
if(r <= 7 && c >= 0) v[r+2][c-1] = true;
if(r <= 7 && c >= 0) v[r+1][c-2] = true;
if(r <= 7 && c >= 0) v[r+2][c+1] = true;
if(r <= 7 && c >= 0) v[r+1][c+2] = true;
if(r <= 7 && c >= 0) v[r-2][c-1] = true;
if(r <= 7 && c >= 0) v[r-1][c-2] = true;
if(r <= 7 && c >= 0) v[r-2][c+1] = true;
if(r <= 7 && c >= 0) v[r-1][c+2] = true;
return v;
}
すべてのヘルプは理解されるであろう!
あなたの 'で'あなたは有効な**目的地**点を確認する必要があります。また、Java配列はゼロベースなので、 '> 0'ではなく'> 0'である理由が明確ではありません。 –
はい、私はそれを逃した@ PM –
この答えの上半分をチェックしてください:http://stackoverflow.com/a/41623648/2341336それは役に立つかもしれません – Chris