Я пытаюсь заставить метод checkgamewinner работать для моей игры TicTacToe, но у меня есть проблемы с тем, что l oop даже запускается или у меня как заканчивается. Всякий раз, когда я начинаю открывать свою игру и нажимать на поле, он выводит спам "нет победителя" в качестве печати. Вот мой текущий код:
public String checkGameWinner(char [][]grid) {
boolean winner = false;
String result = "None";
while(!winner) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (gridAt(0, 0) == 'x' & gridAt(0, 1) == 'x' & gridAt(0, 2) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(0, 0) == 'x' & gridAt(1, 0) == 'x' & gridAt(2, 0) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(0, 0) == 'x' & gridAt(1, 1) == 'x' & gridAt(2, 2) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(1, 0) == 'x' & gridAt(1, 1) == 'x' & gridAt(1, 2) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(2, 0) == 'x' & gridAt(2, 1) == 'x' & gridAt(2, 2) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(0, 1) == 'x' & gridAt(1, 1) == 'x' & gridAt(2, 1) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(0, 2) == 'x' & gridAt(1, 2) == 'x' & gridAt(2, 2) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(0, 2) == 'x' & gridAt(1, 1) == 'x' & gridAt(2, 0) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(0, 0) == 'x' & gridAt(0, 1) == 'x' & gridAt(0, 2) == 'x') {
winner = true;
System.out.println("Player x has won");
break;
} else if (gridAt(0, 0) == 'o' & gridAt(1, 0) == 'o' & gridAt(2, 0) == 'o') {
winner = true;
System.out.println("Player o has won");
} else if (gridAt(0, 0) == 'o' & gridAt(1, 1) == 'o' & gridAt(2, 2) == 'o') {
winner = true;
System.out.println("Player o has won");
} else if (gridAt(1, 0) == 'o' & gridAt(1, 1) == 'o' & gridAt(1, 2) == 'o') {
winner = true;
System.out.println("Player o has won");
} else if (gridAt(2, 0) == 'o' & gridAt(2, 1) == 'o' & gridAt(2, 2) == 'o') {
winner = true;
System.out.println("Player o has won");
} else if (gridAt(0, 1) == 'o' & gridAt(1, 1) == 'o' & gridAt(2, 1) == 'o') {
winner = true;
System.out.println("Player o has won");
} else if (gridAt(0, 2) == 'o' & gridAt(1, 2) == 'o' & gridAt(2, 2) == 'o') {
winner = true;
System.out.println("Player o has won");
} else if (gridAt(0, 2) == 'o' & gridAt(1, 1) == 'o' & gridAt(2, 0) == 'o') {
winner = true;
System.out.println("Player o has won");
} else {
result = "no winner";
System.out.println(result);
}
}
}
}
return result;
}
Понятия не имею, что еще я мог сделать, я немного поиграл с булевыми значениями, но потом он просто не остановился, когда на моей доске был победитель .. Надеюсь, кто-нибудь может помочь мне немного, спасибо!