Язык программирования: C# Для себя Цель: научиться определять классы и интерфейсы, которые удовлетворяют SOLID принципам. Важно! Эта лабораторная и все последующие выполняются в общем командном проекте. При этом каждый член команды выполняет свои задачи индивидуально. Задание. Игра танки. Играют две команды. Каждая команда состоит из трех танков. Танки могут двигаться вперед-назад, поворачиваться по часовой и против часовой стрелки, стрелять. При попадании снаряда в танк, он выходит из строя. Выигрывает так команда, которая первой выведет из строя все танки соперника. Задачи: 1. Прямолинейное равномерное движение танка без деформации. Необходимо реализовать команды: начать движение танка, выполнить движение танка с заданной скоростью в один дискретный момент времени, остановить танк. 2. Поворот танка вокруг собственной оси. Необходимо реализовать команды: начать вращение, выполнить поворот танка с заданной угловой скоростью в один дискретный момент времени, остановить вращение, скорректировать вектор мгновенной скорости с учетом поворота. 3. Выстрел танка. Необходимо реализовать команду: создать объект снаряд с начальной скоростью, выполнить команду начать движение снаряда. Указание: 1. для выполнения лабораторных работ не нужно реализовывать объект, представляющий танк. Вместо него лучше писать тесты с помощью Mock объектов. 2. Для решения этих задач скорее всего необходимо будет реализовать макрокоманду. Макрокоманда - это команда, которая выполняет последовательность других команд. Критерии приемки: 1. Код компилируется без ошибок и предупреждений. 2. Написаны модульные тесты, которые обеспечивают 100% кода тестами. 2. Настроен gitlab CI, который демонстрирует, что код компилируется, а все тесты проходят Язык программирования: c# Синтаксис: без использования циклов, используем методы и функции.