私は騎士のツアープログラムを作ろうとしていますが、ボードの2次元配列の行/ボードの周りを移動します。しかし、私がしようとするすべては、1を引く代わりに-1にボードを設定しようとしています。2次元配列の行/列から減算することはできません。[Java]
問題が何であるかを説明するのは難しいですが、誰かがここで私を助けることができたら、コード:この時点で出てくる
public class Knight1 {
public static void main(String[] args) {
int board[][] = new int[8][8];
int horizontal[] = new int[8];
int vertical[] = new int[8];
horizontal[0] = 2;
horizontal[1] = 1;
horizontal[2] = -1;
horizontal[3] = -2;
horizontal[4] = -2;
horizontal[5] = -1;
horizontal[6] = 1;
horizontal[7] = 2;
vertical[0] = -1;
vertical[1] = -2;
vertical[2] = -2;
vertical[3] = -1;
vertical[4] = 1;
vertical[5] = 2;
vertical[6] = 2;
vertical[7] = 1;
int move = 1;
int moveNumber = 0;
int currentRow = 0;
int currentCol = 0;
int counter = 1;
while (moveNumber != 7) {
currentRow += vertical[moveNumber];
currentCol += horizontal[moveNumber];
board[currentRow][currentCol] = counter;
moveNumber++;
counter++;
}
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
System.out.print(board[i][j] + " ");
}
System.out.println();
}
}
}
currentRow + = vertical [moveNumber]; currentRowは-1に等しい。そして、あなたは[currentRow] [currentCol] =カウンターに乗りたいです。しかしcurrentRowは-1なので、これはできません。あなたは何をしたいのか分かりませんでしたか? – ssorfonos
つまり、Arrayインデックス値が** 0 **未満であるか、Arrayインデックス値がArray -1に含まれる要素数より大きくなることはありません。 – DevilsHnd
サイドノート。 'int [] vertical = new int [] { - 1、-2、... 1};' – Justas