Simplyfing метод возвращает оператор, который имеет массивы
Можно ли упростить этот метод hasWinner (), я хочу проверить, не пуст ли какой-то индекс массива, а затем проверить, есть ли уже массивы, которые имеют одинаковое значение, метод работает, чтобы проверить, есть ли у крестиков-ноликов победитель еще или нет
Player currentPlayer; private final Player[] boardOwned = new Player[9]; public boolean hasWinner() { return (boardOwned[0] != null && boardOwned[0] == boardOwned[1] && boardOwned[0] == boardOwned[2]) || (boardOwned[3] != null && boardOwned[3] == boardOwned[4] && boardOwned[3] == boardOwned[5]) || (boardOwned[6] != null && boardOwned[6] == boardOwned[7] && boardOwned[6] == boardOwned[8]) || (boardOwned[0] != null && boardOwned[0] == boardOwned[3] && boardOwned[0] == boardOwned[6]) || (boardOwned[1] != null && boardOwned[1] == boardOwned[4] && boardOwned[1] == boardOwned[7]) || (boardOwned[2] != null && boardOwned[2] == boardOwned[5] && boardOwned[2] == boardOwned[8]) || (boardOwned[0] != null && boardOwned[0] == boardOwned[4] && boardOwned[0] == boardOwned[8]) || (boardOwned[2] != null && boardOwned[2] == boardOwned[4] && boardOwned[2] == boardOwned[6]); } public boolean boardFilledUp() { for (Player player : boardOwned) { if (player == null) { return false; } } return true; }
Что я уже пробовал:
Я попытался извлечь его тремя методами и использовать цикл for, но он повторяется, и я еще не нашел рабочий код
public boolean hasWinner() { return checkHorizontal() || checkVertical() || checkDiagonal() }