Отрабатываемый материал
Инкапсуляция, сокрытие, композиция, полиморфизм, интроспекция, SOLID
Цель
Освоить основные принципы ООП, применить на практике знания о работе с объектно-ориентированным кодом на C#
Задание
- Реализовать объектную модель симулятора фэнтезийного космического передвижения
- Покрыть полученное решение модульными тестами
Формулировка
Отделу космических исследований необходима система для расчётов продолжительности космических маршрутов в различных средах, а так же расчётов возможности и оптимальности прохождения данных маршрутов определёнными типами кораблей.
Среды
- обычный космос
для перемещения в данной среде кораблей необходимо иметь импульсный двигатель.
- туманности повышенной плотности пространства
для перемещения в данной среде импульсные двигатели имеют достаточно малую эффективность, поэтому их использование нецелесообразно. к тому же, такие туманности имеют большую пространственную площадь, поэтому перемещения через них возможно лишь по специальным подпространственным каналам. эти каналы имеют определённую длину, поэтому чтобы по ним пройти, корабль должен иметь возможность пройти канал полностью, сделать это в два захода не получится. для перемещения по подпространственным каналам необходимы специальные прыжковые двигатели.
- туманности нитринных частиц
для перемещения в данной среде кораблей необходимо иметь импульсный двигатель. контакт с нитринными частицами снижает эффективность работы импульсных двигателей, поэтому для оптимального прохождения через такие туманности, необходимо использовать импульсные двигатели экспоненциального ускорения.
Каждая среда может содержать соответствующее ей препятствие.
Двигатели
- Импульсный двигатель класса C
стандартный импульсный двигатель. выдаёт константную скорость средней величины, имеет достаточно низкое потребление топлива (активной плазмы).
- Импульсный двигатель класса E
импульсный двигатель экспоненциального ускорения. выдаёт скорость, экспоненциально растущую на протяжении ускорения корабля данным двигателем. такое поведение требует больший расход топлива, чем для двигателя класса C.
- Прыжковый двигатель
существует несколько классов прыжковых двигателей (Alpha, Omega, Gamma), различаются дальностью хода по подпространственным каналам и формулой расчёта потребления специального топлива – гравитонной материи. Alpha – линейный расход, Omega – логарифмический (~n log n), Gamma – квадратичный.