Skip to content
Public template

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

Лабораторная работа №4

Симуляция казино с гусями на 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

Спасибо за внимание! Если хотите попробовать более подробную версию игры, приглашаю в лес

forest.jpeg

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages