Симуляция казино с гусями на Python. Игроки делают ставки, гуси крадут деньги и кричат (замораживают деньги).
Игроки регистрируются в казино, получают 1000$ стартового капитала (фишки). Делают ставки, выигрывают или проигрывают. Гуси - противники, которые:
- Крадут деньги (безвозвратно)
- Кричат (замораживают деньги на время, потом возвращаются)
- Goose - обычный, крадет или кричит (заморозка на 3 хода)
- WarGoose - крадет в 1.5 раза больше
- HonkGoose - кричит громче и дольше (заморозка на 6 ходов)
src/
├── chip.py # Фишки (красная=5$, голубая=10$, зелёная=25$, чёрная=100$)
├── player.py # Игрок (баланс через фишки)
├── goose.py # Гуси (Goose, WarGoose, HonkGoose)
├── casino.py # Казино (управление игрой)
├── casino_collections.py # Коллекции (балансы, доходы гусей)
├── config.py # Конфигурация логирования
└── main.py # Запуск симуляции
tests/ # Тесты для каждого класса
python -m src.mainСимуляция создаст случайных игроков и гусей, выполнит случайные действия. Логи пишутся в shell.log, важные события выводятся в консоль.
Ставки:
- 10% шанс мега-выигрыш (x3)
- 30% шанс выигрыш (x2)
- 60% шанс проигрыш
Кража: деньги теряются навсегда, записываются в счет гуся.
Крик: деньги замораживаются на N ходов, потом возвращаются. HonkGoose замораживает на 6 ходов.
Стая: гусей можно объединить через +, получают суммарные характеристики.
- В файл (
shell.log): детальная информация через стандартныйlogging(регистрация, изменения балансов, все действия) - В консоль: только важные события через
print(ставки с результатами, кражи, крики, состояние казино)
pytestТесты для каждого класса в отдельных файлах.
- Фишки вместо денег (красная=5$, голубая=10$, зелёная=25$, чёрная=100$)
- Магические методы:
__add__для гусей и фишек,__call__для HonkGoose - Наследование: Goose → WarGoose, HonkGoose
- Коллекции: UserDict для балансов и доходов с логированием
Игра заканчивается когда у всех игроков баланс = 0
