Добавляем переменно
Проверку на окончание партии можно выполнить условным оператором:
if( Referee.GameFinish() )
Метод GameFinishO сразу возвращает логическое значение типа bool — именно то, что и требуется условному оператору.
За оператором if следует логический блок, заключенный в фигурные скобки. В начале этого блока надо определить временную переменную типа AnsiString:
AnsiString s;
которая потребуется для хранения строк, предназначенных для вывода на экран. Почему в данном случае вместо переменной не будут использоваться константы, станет понятно дальше.
Так как внутри нового блока известно, что один из игроков одержал победу, надо выяснить, кто это был конкретно. В этом опять поможет условный оператор: ' *
if( Referee.Human.Scores >= GAME_FINISH_SCORE )
Сначала проверяются набранные очки человека. Если они больше или равны 100, то в переменную s заносится строка о победе человека (ее надо описать в файле Text.h:
const AnsiString HUMAN_WON_STR = "Победил человек";
в противном случае — строка, сообщающая о поражении:
const AnsiString COMPUTER_WON_STR = "Победил компьютер" ;
Здесь же следует увеличить на единицу счетчик числа побед для соответствующего игрока (Human или Computer).
Расширенный условный оператор
Такую логику удобно реализовать условным оператором, учитывающим, что надо сделать как в случае, если проверяемое условие истинно, так и в случае, если оно ложно. В Си++ для этого есть специальная .форма оператора if:
if(условие) действие_1;
v
else действия_2 ;
Действия-2 выполняются, если условие ложно, то есть его значение равно false.
147