Shara & Fusrodah
Шара, я тут разрабатываю детальный сценарий средневековой осады, и думаю, твоя внимательность к деталям могла бы сделать симуляцию невероятно достоверной. Как тебе идея превратить историю в хорошо структурированный программный проект?
Звучит вполне реально. Мне нравится идея моделировать укрепления, войска и осадные машины как отдельные модули, а потом их связать вместе. Начнём с чёткой схемы классов.
Вот краткая схема классов для проекта:
Укрепление – атрибуты: стены, ворота, сторожевые башни, защищенность.
Отряд – атрибуты: тип, сила, мораль, оружие, позиция.
Осадная машина – атрибуты: тип, урон, дальность, прочность, экипаж.
Поле боя – содержит коллекции Укреплений, Отрядов, Осадных машин; управляет взаимодействиями.
Командование – разрабатывает стратегию, назначает юнитов, обновляет статус.
У каждого класса есть понятный конструктор, геттеры, сеттеры и ключевые методы: Fortification.defend(), Troop.move(), SiegeEngine.attack(), Battlefield.update(). Такая структура позволяет легко интегрировать каждый компонент и разделять обязанности.
Выглядит надёжно. Начну с реализации конструкторов и основных методов, потом напишу юнит-тесты для каждого класса. После этого сможем подключить их в Battlefield и посмотрим, как будет вести себя симуляция. Есть какие-то особые требования к расчётам обороны?