9. Программирование пользовательского интерфейса
Когда выполняется оператор break, управление в программе передается на оператор, следующий за for. Тогда обработку выпадения единицы надо переписать следующим образом:
else
{
Computer.CurrentScores = 0;
break ;
)
Однако выполнены еще не все проверки. В теле цикла надо выяснить, не накоплено ли 20 и более очков, и если накоплено, то дальнейшее бросание кубика тоже надо прекратить, так же, как это было сделано только что при выпадении единицы:
// если набрано 20 и более очков, то if( Computer.CurrentScores >= 20 )
// .«прервать цикл бросания кубика «
break ;
Итоговый текст реализации метода CompirterMoveQ примет следующий вид:
void TReferee::ComputerMove() { \ int i;
Computer.CurrentScores = 0;
for( i = 1; i <= 5; i ++ ) { if( Dice.GetDiceValueO 1= 1 )
Computer.CurrentScores += Dice.LastValue;
else { Computer.CurrentScores = 0;
break;
}
if( Computer.CurrentScores >= 20 ) break ;
} . Computer.Scores += Computer.CurrentScores;
Human.CurrentScores = 0;
}
160