8.Играем с^компьютером. Более ^
II Так как теперь ход человека, надо обнулить // очки его текущего хода:
Human.CurrentScores = 0;
} ,.
Смысл предпоследнего оператора присваивания в том, что значение переменной Scores увеличивается на величину CurrentScores. Подобные действия в Си++ можно записывать компактнее:
Computer.Scores += Computer.CurrentScores;
Оператор присваивания «+=» увеличивает значение переменной, расположенной слева, на значение выражения, расположенного справа от него.
¦ Помимо «+=», в Си++ имеются похожие операторы «-=», «*=» и «/=». Например:
х-= 5;//то же, чтох=х - 5; " х *= 2; //то же, что х = х * 2;
х /= у+1; // то же, что х = х / (у+1);
Теперь осталось реализовать метод GameFinish(). Логический блок, который «скажет», окончена ли игра, должен проверить, достигнута или превышена максимальная сумма очков, набранная человеком или компьютером. В нашем примере предельное число очков равно 100. Такую проверку можно записать так:
Human.Scores >= 100 II Computer.Scores >= 100
Это выражение удобно использовать в операторе return, чтобы вернуть в программу логическое значение true или false:
// Проверка на окончание игры bool TReferee::GameFinish()
{
return (Human.Scores >= 100 II Computer.Scores >= 100);
} Для наглядности вычисляемое выражение взято в круглые скобки.
Константы — вещь полезная
Допустим, что нам захочется немного изменить правила игры и повысить или понизить порог очков (100), после превышения которого партия счи-
138