TGViewer
CodeShadow CodeShadow @codeshadowcources · 76 subscribers
Post #497 90
🚀Игровой цикл, анимация и логика битвы

Сегодня посмотрим, как герои атакуют, умирают, удаляются из игры и как всё это двигает основной игровой цикл.


💎 Игровой цикл

Главная функция — main_game().

Она делает 4 вещи:
1. спрашивает у пользователя, сколько будет героев
2. создаёт героев выбранных типов
3. запускает цикл боя
4. выводит победителя

После создания персонажей начинается:

🩸 «Великая битва»
Игровой цикл:

1. Все персонажи атакуют друг друга по очереди
2. Мы проверяем, кто ещё жив
3. Убитые удаляются
4. Если остался один — он победил

⚔️ Функция start_game

Здесь происходит сама битва:
1. герой выбирает цель
2. вызывает свой attack()
3. цель вызывает свой set_damage()

Благодаря полиморфизму:
✅ маг защищается
✅ гном может получить пассивку
✅ человек иногда уклоняется
✅ орк входит в ярость
✅ эльф делает крит

То есть одна и та же строка кода работает по-разному в зависимости от типа героя.
Это и есть мощь ООП.

🎃 Удаление павших

После раунда вызывается:
clear_death()

Это анимация, созданная в файле animation_battle.py, при помощи библиотеки rich.
Она показывает прогресс-бар «чистки трупов» — это просто эстетика, но очень добавляет атмосферы.


После анимации:
if death.hp <= 0:
del list_heroes[index]


Герой исчезает из списка — он официально мёртв.

😃 Финал

Когда в списке остаётся 1 герой:

Победа за ... !


Вот и всё — мини-боевая система завершена. 🥃

👨‍💻 Что это даёт тебе как разработчику?

☀️понимание архитектуры в стиле «каждый объект — самостоятельный»
☀️работу с полиморфизмом
☀️обработку событий и случайностей
☀️построение игрового цикла
☀️работу с внешними файлами и анимациями
☀️практику структурирования большого кода


Это отличный учебный кейс, который можно расширять:

☀️добавить оружие
☀️инвентарь
☀️уровни
☀️прокачку умений
☀️магические эффекты
☀️логирование
☀️UI

👉БЛОК АНИМАЦИИ СМОТРИ ЗДЕСЬ

#КейсыPython #ООП #CodeShadow
More from @codeshadowcources
  1. Oct 6, 2026😎
  2. Oct 3, 2026😐
  3. Sep 27, 2026Пусть Codex или Claude сами напишут MCP Теперь кейс посерьёзнее. Допустим, приходит клиент…
  4. Sep 25, 2026Что вообще продавать клиенту? Представим обычный бизнес. ✏️ Есть CRM. 🐹 Есть база клиенто…
  5. Sep 23, 2026Пишем свой MCP на Python 💻 В прошлом посте разобрались, что MCP позволяет дать нейросети…
  6. Sep 21, 2026Начинаю серию постов про MCP 🙂
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →