Я программирую крестики-нолики и застрял в написании галстука (). Мой победитель () выглядит следующим образом, и diagonalTest() rowTest() и columnTest() просто проверяют свои имена, чтобы узнать, какой игрок выиграл. Однако до тех пор, пока кто-то не выиграет, все они возвращают false, и из-за этого они ложны во время игры, пока кто-то не выиграет. Учитывая это, как я могу написать tie () ??

public static char getWinner(char p)
{   
     if(diagonalTest() || rowTest() || columnTest())
     return p;

  return ' ';    
}
1
PTheCoolGuy 26 Фев 2015 в 04:44

3 ответа

Лучший ответ

Галстук соответствует

bool isTie = !(diagonalTest() || rowTest() || columnTest()) && boardIsfull();
1
Jack 26 Фев 2015 в 01:47

Крестики-нолики имеют 9 квадратов, поэтому 9 шагов имеют счетчик для каждого шага, когда счетчик равен 9, тест на победу, если нет ничьей.

0
ModDL 26 Фев 2015 в 01:46

Вам нужно иметь инструкцию else, когда все тесты ложны:

if(diagonalTest() || rowTest() || columnTest()){
    return 'p';
}else{
    return 't'; //t char for tied
}
1
LeoLiu 26 Фев 2015 в 01:52