Я разрабатываю 4 игры Connect с 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;
}
Каковы размеры для 'поля'? Потому что теперь похоже, что вы сразу получите 'ArrayIndexOutOfBoundsException', так как вы будете обращаться к' field [row + 1] [column + row - 1] 'for' row = 0; column = 0; '=>' field [1] [- 1] '. – jabbink
7x7 (private static int [] [] field = new int [7] [7];) Я не уверен, как это сделать – Xilver266