8. Играем с компьютером. Более сложный пример
— Игрок характеризуется суммарным количеством очков, очками, набранными на текущем ходу, а также числом выигранных партий. Это и будут свойства или, точнее говоря, внутренние переменные класса Игрок.
— А что игрок может делать?
— При своем ходе он может получить и обработать число, выпавшее на кубике, а также может принять решение, будет ли он продолжать броски далее или передаст ход противнику. Это и будут методы класса Игрок.
Похожим, способом можно описать свойства и методы класса Судья, который определяет, закончилась ли текущая партия и помогает сделать ход компьютеру. Судья также бросает кубик и объявляет новую игру.
Класс Кубик будет совсем простым. Для него потребуется создать только один метод — Получить значение очередного броска и ввести всего одну переменную, хранящую значение последнего броска.
Теперь попробуем описать алгоритм работы программы в зависимости от действий пользователя и возникновения тех или иных событий.
Событие «Новая игра»
При наступлении этого события происходят следующие действия:
• все набранные очки каждого игрока обнуляются;
• в соответствующих полях главного окна выводится начальная информация;
• случайным образом выбирается игрок, ходящий первым;
• если это компьютер, то:
выполняется ход компьютера. Событие «Выход» При наступлении этого события происходит только одно действие:
• программа закрывается. Событие «Бросить кубик» После этого события выполняются следующие операции:
• бросается кубик для человека.
• если выпала 1, то:
ход передается компьютеру;
126