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