s. играем с компьютером. Более сложный пример
TPlayer::TPlayer() { WinNum = 0 ;
}
Подключаем судью
Теперь осталось описать третий класс — судью, TReferee. В него надо включить две переменные тина TPlayer — игрока-человека и игрока-компьютера, переменную ™naTDice — кубик, метод NewGame (новая игра), ComputerMove (ход компьютера) и GameFinish (проверка на конец партии):
class TReferee { public:
TPlayer Human, Computer;
TDice Dice;
void ComputerMove() ;
bool GameFinish();
void NewGame () ;
};
Метод GameFinish() будет возвращать логическое значение true, если один из игроков набрал больше 100 очков, и false в противном случае.
Вполне возможно, что в дальнейшем понадобятся и другие вспомогательные методы. Будем добавлять их по мере возникновения такой потребности.
Способность предусмотреть и заранее точно определить, какие методы каждого класса будут реально востребованы в работе, считается признаком высокого профессионального мастерства программиста.
Реализация метода NewGameQ в файле Game.cpp будет немного посложнее, чем реализации предыдущих методов. Сначала надо проинициализи-ровать внутренние переменные каждого игрока, а затем определить, чья очередь хода. Для этого можно бросить кубик, и если на нем выпадут числа 1,2 или 3, то надо сделать ход за компьютер, в противном случае — считать, что очередь хода человека и ожидать его действий, завершив работу метода NewGameQ.
134