После того как все описанные действия будут выполнены, программа окажется в некотором промежуточном состоянии: прошлая игра уже окончилась, о чем имеется соответствующая запись в списке, а новая еще не началась. Такое состояние надо отслеживать особо, чтобы при щелчке на кнопке Бросить кубик никаких действий не происходило, а выдавалось бы сообщение о том, что новая партия еще не начата.
С помощью Инспектора объектов задайте пункту меню Бросить кубик название UseDiceltem и создайте метод реакции на выбор этого пункта. Он получит название UseDiceItemClick().
// добавить код самостоятельно по указаниям, приведенным ниже
}
1. Прежде всего, надо проверить, закончена ли текущая партия. Если это так, то желательно сообщить пользователю, что сначала надо начать новую партию, .а дальнейшие действия текущего метода не выполнять:
if( Referee.GameFinish()) {
ShowMessage(GAME_FINISHED_STR) ;
return;
}
2. Если же игра продолжается, то сначала требуется проверить, не выпала ли единица. Если да, то с помощью функции ShowMessage() надо сообщить об этом человеку, для чего предварительно стоит описать константу: Не забывайте: все константы располагаются в файле Text.h
const AnsiString ONE_STR = "Выпала единица";
3. Если выпала не единица, то необходимо увеличить набранные на текущем ходу очки на выпавшее число, по окончании всех проверок обновить содержимое экранных полей и выполнить проверку на завершение игры.
Выглядеть соответствующий текст будет так:
// если выпала единица...
if( Referee.Dice.GetDiceValue() == 1 )
{
// показать соответствующее сообщение ShowMessage(ONE_STR) ;