Уровень 1 — почувствовать смысл объектов
- Гильдия охотников на чудовищ
Контекст: ты делаешь RPG-систему для гильдии.
Создай класс охотника.
У каждого охотника:
- имя
- здоровье
- выносливость
- уровень
- оружие
Методы:
- attack(enemy) — наносит урон
- rest() — восстанавливает выносливость
- level_up() — повышает уровень и характеристики
- change_weapon(new_weapon)
Дополнительно:
- если выносливость = 0 → атаковать нельзя
- оружие влияет на урон
Что даст задача:
Ты поймёшь, почему объект = состояние + поведение.
⸻
- Чёрный рынок артефактов
Контекст: игроки покупают магические предметы.
Создай класс артефакта.
Свойства:
- название
- редкость
- цена
- сила магии
- проклят ли предмет
Методы:
- upgrade()
- sell_price()
- inspect()
Логика:
- легендарные предметы улучшаются хуже
- проклятый предмет нельзя продать
Дополнение:
Создай 10 объектов и отсортируй рынок по цене.
Что даст:
Поймёшь, как удобно хранить много похожих сущностей.
⸻
- Банда хакеров
Контекст: киберпанк-мир.
Класс Hacker.
Поля:
- nickname
- skill
- stealth
- crypto_balance
- tools
Методы:
- hack(target_security)
- buy_tool(tool)
- train()
- show_stats()
Условие:
успех взлома зависит от характеристик.
Например:
chance = skill + stealth - target_security
Сделай случайность через random.
Что даст:
Начнёшь видеть классы как симуляцию мира.
⸻
Уровень 2 — взаимодействие объектов
- Арена гладиаторов
Контекст: два персонажа сражаются автоматически.
Сделай класс Gladiator.
Потом:
battle(gladiator1, gladiator2)
Требования:
- разные стили боя
- шанс критического удара
- броня
- уклонение
Лог боя:
Раунд 1:
Max ударил Leon на 13
Leon уклонился
...
Победил Max
Что даст:
Ты поймёшь, как объекты разговаривают друг с другом.
⸻
- Космический корабль
Контекст: ты капитан.
Класс Spaceship.
Состояние:
- топливо
- корпус
- экипаж
- груз
- координаты
Методы:
- travel(distance)
- repair()
- mine_resources()
- trade()
- fight_pirates()
Механика:
- путешествие тратит топливо
- пиратская атака случайна
- если корпус = 0 → конец игры
Что даст:
Поймёшь идею инкапсуляции состояния.
⸻
- Менеджер преступной империи
Контекст: ты управляешь подпольной сетью.
Класс Business.
Есть:
- деньги
- риск полиции
- сотрудники
- прибыль
Методы:
- expand()
- launder_money()
- hire_worker()
- police_raid()
Случайные события:
- рейд
- предательство
- крупная сделка
Что даст:
Увидишь, как классы помогают строить сложную систему без хаоса.
⸻
Уровень 3 — настоящая сила ООП
- Система покемонов (наследование)
Создай базовый класс:
Creature
Общие свойства:
- hp
- attack
- defense
- energy
Методы:
- attack()
- take_damage()
Потом наследники:
FireCreature
WaterCreature
ElectricCreature
Особенности:
- огонь сильнее травы
- вода сильнее огня
- электричество критует
Что даст:
Поймёшь наследование, когда один класс расширяет другой.
⸻
- Криминальная организация (композиция)
Контекст: GTA/Peaky Blinders.
Класс:
Gang
У банды есть участники.
Отдельный класс:
Member
Методы банды:
- recruit()
- remove_member()
- raid(other_gang)
Особенность:
банда хранит объекты участников внутри себя.
Например:
gang.members.append(member)
Что даст:
Поймёшь отношения между объектами.
⸻
- Симулятор средневекового города
Самая сильная задача.
Классы:
Citizen
House
Market
Kingdom
Жители:
- работают
- покупают еду
- умирают
- богатеют
Каждый день:
kingdom.next_day()
Происходят события:
- голод
- война
- налоги
- эпидемия
Цель:
запустить симуляцию на 100 дней.
Что даст:
Поймёшь, зачем ООП существует в реальных проектах.
⸻
Уровень 4 — задачи «вау, теперь я понимаю классы»
- Создай мини-игру «Тёмное подземелье»
Классы:
Player
Monster
Weapon
Inventory
Dungeon
Механики:
- предметы
- бои
- инвентарь
- уровни
- лут
- случайные комнаты
Игрок:
- Исследовать
- Сражаться
- Открыть сундук
- Отдохнуть
Что даст:
В какой-то момент ты поймёшь:
«Без классов это был бы ад из переменных».
⸻
Последовательность прохождения
- Гильдия охотников
- Чёрный рынок
- Хакеры
- Арена гладиаторов
- Космический корабль
- Преступная империя
- Покемоны
- Банда
- Средневековый город
- Подземелье
Если пройти все 10 — тема классы/объекты закрепится на уровне практики, а не теории.