【发布时间】:2015-10-22 21:38:21
【问题描述】:
我正在开发一个带有 7x7 字段、水平和垂直检查的 Connect 4 游戏,但我没有得到对角检查工作
只要其中一个令牌不在最后一列,我就可以获胜。
这是所有检查:
private static int getWinningInDiagonals() {
// Top-Left -> Bottom-Right
for (int column = 0; column < 7; column++) {
int count = 0;
for (int row = 0; row < 7; row++) {
if (field[row][column] != 0 && field[row+1][column + row - 1] == field[row][column])
count++;
else
count = 1;
if (count >= 4) {
return field[row][column];
}
}
}
// Top-Right -> Bottom-Left
for (int column = 0; column < 7; column++) {
int count = 0;
for (int row = 0; row < 7; row++) {
if (field[row][column] != 0 && field[row+1][column - row + 1] == field[row][column])
count++;
else
count = 1;
if (count >= 4) {
return field[row][column];
}
}
}
return 0;
}
【问题讨论】:
-
field的尺寸是多少?因为现在看起来您将立即获得ArrayIndexOutOfBoundsException,因为您将访问field[row+1][column + row - 1]以获得row = 0; column = 0;=>field[1][-1]。 -
7x7 (private static int[][] field = new int[7][7];) 我不知道该怎么做
标签: java game-engine