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 в противном случае.

Вполне возможно, что в дальнейшем понадобятся и другие вспомогательные методы. Будем добавлять их по мере возникновения такой потребности.

h01341.jpg

Способность предусмотреть и заранее точно определить, какие методы каждого класса будут реально востребованы в работе, считается признаком высокого профессионального мастерства программиста.

Реализация метода NewGameQ в файле Game.cpp будет немного посложнее, чем реализации предыдущих методов. Сначала надо проинициализи-ровать внутренние переменные каждого игрока, а затем определить, чья очередь хода. Для этого можно бросить кубик, и если на нем выпадут числа 1,2 или 3, то надо сделать ход за компьютер, в противном случае — считать, что очередь хода человека и ожидать его действий, завершив работу метода NewGameQ.

134