Comments 9
Очень четко и понятно!
Спасибо за вдохновение!
Какое-то месиво получается. Класс персонажа и в консоль пишет, и random зовет. Страшно представить в какого монстра все это превратится, когда начнут появляться новые требования: damage зависит от типа местности, от того кто кого атакует, при атаке можно контратаковать, но не всех и т.п. Представьте боевую систему третьих героев, или wesnoth, и как вы будете реализовывать подобное
Вы приводите примеры сложных систем (Heroes, Wesnoth), а мы здесь разбираем алфавит. Конечно, архитектура AAA-стратегии строится иначе (ECS, Event Bus и т.д.). Но нельзя научить человека писать «Войну и мир», пока он не выучил буквы. Этот код — демонстрация базовых принципов (Наследование/Полиморфизм) в вакууме, а не готовый движок для Steam.
Звучит как суровое, но справедливое код-ревью времен моей стажировки в команде АБТ :) (zaplavs)
Вы абсолютно правы насчет архитектуры серьезных проектов (разделение логики, View и т.д.). Но если я сейчас вывалю на новичка паттерны проектирования, он просто закроет вкладку. Здесь мы намеренно упрощаем (KISS), чтобы человек понял суть self и полиморфизма. А до "серьезной архитектуры" мы с читателями дорастем в следующих статьях!
Интересно
ООП в Python на пальцах: Пишем свою текстовую RPG с нуля