Я начал программировать несколько недель назад в java/android. Я хочу написать небольшую игру tic tac toe в качестве приложения для Android, но у меня возникают проблемы с моим методом, который будет проверять победителя. Она заключается в следующем:(Code Review) Оператор Java if с логическим и (&&) оператором
public void checkForWinner() {
if(taken[0] && taken[3] && taken[6] ||
taken[0] && taken[1] && taken[2] ||
taken[2] && taken[5] && taken[8] ||
taken[6] && taken[7] && taken[8] ||
taken[0] && taken[4] && taken[8] ||
taken[2] && taken[4] && taken[6] ||
taken[1] && taken[4] && taken[7] ||
taken[3] && taken[4] && taken[5] == 1){}
}
Здесь я массив называется принято, что имеет 9 чисел, каждое из этих чисел является либо один, то есть игрок один владеет этот блок, или два, означающий игрока два РМО этого блока , Текущий, я пытаюсь попробовать все возможные сценарии, в которых игрок будет победителем, но затмение говорит мне, что The operator && is undefined for the argument type(s) int, int
. Кажется, что ошибка показывает только первую логику и работу каждой строки оператора if. Например, первая ошибка увеличивается до taken[0] && taken[3]
, а затем исчезает до следующей строки.
Если в элементах массива «приняты» есть только два возможных значения, тогда вам следует подумать о создании булевого массива, так что ваши логические утверждения также имеют смысл, хотя вы можете добавить скобки для удобства чтения. Однако, видя, что вы пытаетесь реализовать игру tic-tac-toe, вам понадобится другое значение для пространства, которое не имеет ни «1», ни «2», и в этом случае вам нужно будет проверить равенство, используя «= = ', а не булевы операторы. – pennetti
Булевский массив - плохая идея, так как вам нужны три состояния. Пустой, p1, p2. –
@Sam [Нет, вы недостаточно открыты] (http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx);) – Voo