← На главную портала
Лабораторная №3 29/29 Автотестов Builder • Prototype • Decorator • Factory Discriminated Unions

Симулятор сражений фэнтези-существ

Полный интерактивный путеводитель по Лабораторной работе №3: изоляция состояний через Prototype (Clone), «матрёшка» модификаторов на Decorator без отдельного интерфейса, отложенная сборка через Builder + Applier, симулятор боя и шпаргалка для защиты.

Паттерны
Creational + Structural
Сборка & Тесты
29 passed (0 errors)

🎯 В чём главная суть Лабораторной №3?

Мы проектируем ядро карточного автобаттлера (в духе Hearthstone Battlegrounds). Главная архитектурная задача — соединить порождающие и структурные паттерны так, чтобы выполнить три ключевых требования ТЗ:

1. Три изолированных разреза жизни
Каталог → Стол → Бой

Баффы заклинаний на столе не меняют шаблон в каталоге, а ранения, баффы и смерти в бою не портят существ на столе игрока. Решается паттерном Prototype (Clone).

2. Модификаторы без абстракции
Цепочка Decorator («Матрёшка»)

По ТЗ у модификаторов не должно быть отдельного интерфейса, а существа не должны знать о модификаторах. Поэтому каждый модификатор сам является ICreature и оборачивает другое существо.

3. Отложенная сборка и конфигурация
Builder + Modifier Applier

На этапе настройки в билдере самого существа ещё нет — мы копим статы и фабрики-апплайеры ICreatureModifierApplier, а в момент Build() создаём ядро и надеваем на него слои-декораторы.

📂 В каком порядке изучать файлы проекта (6 шагов снизу вверх)

Нажмите на шаг, чтобы увидеть детали и код
ШАГ 1 • ФУНДАМЕНТ 4 файла
Value Objects и ICreature

AttackPoints, HealthPoints, контракт ICreature и базовый класс Creature.

ШАГ 2 • НАСЛЕДНИКИ 5 файлов
5 конкретных существ

CombatAnalyst, SpitefulFighter, MimicChest, UndyingHorror, AmuletMaster.

ШАГ 3 • ДЕКОРАТОРЫ 8 файлов
Модификаторы и Апплайеры

CreatureDecorator, Щит, Мастерство, Вампиризм и ICreatureModifierApplier.

ШАГ 4 • ПОРОЖДЕНИЕ 9 файлов
Билдеры и Каталог

ICreatureBuilder, CreatureBuilderBase, AmuletMasterBuilder и CreatureCatalog.

ШАГ 5 • СТОЛ И МАГИЯ 9 файлов
Заклинания и Стол игрока

ISpell (4 заклинания), PlayerBoard (лимит 7 существ, DU-результаты, копия для боя).

ШАГ 6 • ДВИЖОК БОЯ 4 файла + тесты
Симуляция боя и Тесты

ITargetSelector, BattleResult (DU), пошаговый цикл BattleSimulation и 29 тестов.