8. Играем с компьютером. Более сложный пример

— Игрок характеризуется суммарным количеством очков, очками, набранными на текущем ходу, а также числом выигранных партий. Это и будут свойства или, точнее говоря, внутренние переменные класса Игрок.

— А что игрок может делать?

— При своем ходе он может получить и обработать число, выпавшее на кубике, а также может принять решение, будет ли он продолжать броски далее или передаст ход противнику. Это и будут методы класса Игрок.

Похожим, способом можно описать свойства и методы класса Судья, который определяет, закончилась ли текущая партия и помогает сделать ход компьютеру. Судья также бросает кубик и объявляет новую игру.

Класс Кубик будет совсем простым. Для него потребуется создать только один метод — Получить значение очередного броска и ввести всего одну переменную, хранящую значение последнего броска.

Теперь попробуем описать алгоритм работы программы в зависимости от действий пользователя и возникновения тех или иных событий.

Событие «Новая игра»

При наступлении этого события происходят следующие действия:

• все набранные очки каждого игрока обнуляются;

• в соответствующих полях главного окна выводится начальная информация;

• случайным образом выбирается игрок, ходящий первым;

• если это компьютер, то:

выполняется ход компьютера. Событие «Выход» При наступлении этого события происходит только одно действие:

• программа закрывается. Событие «Бросить кубик» После этого события выполняются следующие операции:

• бросается кубик для человека.

• если выпала 1, то:

ход передается компьютеру;

126