Покер
В рамках этой лабораторной работы необходимо реализовать логику для моделирования игры в покер, используя функционал написанных ранее работ.
- Банк для игры в покер должен расширять общую логику банка, реализованную в прошлой лабораторной работе.
- В классе игры в покер должны быть определены следующие методы:
- Метод для начала новой игры
- Метод для раздачи карт игрокам
- Метод для получения ставок от игроков
- Метод для сравнения комбинаций карт у игроков и определения победителя
- Метод для начисления выигрыша победителю
- Метод для начисления проигрыша игрокам, которые не смогли составить комбинацию, превышающую комбинацию у диллера
- В классе банка для игры в покер должны быть определены методы, аналогичные методам общего банка, а также методы для учета текущего состояния банка в процессе игры:
- Метод для начисления выигрыша победителю
- Метод для списания ставок от игроков
- Метод для проверки наличия достаточной суммы на счету игрока для ставки
- Интерфейс взаимодействия с банком может быть изменен в соответствии с требованиями задачи, но должен содержать минимальный набор методов для работы с банком.
- Для реализации логики взаимодействия между игроками, диллером и банком рекомендуется использовать структурный паттерн "Фасад".
- Для реализации различных стратегий ставок и выбора карт для действий игрока рекомендуется использовать поведенческие паттерны проектирования, изученные в рамках курса.
Требования к проверке:
- Необходимо реализовать тесты для всех методов, чтобы убедиться в корректности работы программы.