Реализован паттерн “Фасад” через который пользователь управляет программой - Facade.hpp
Для передачи команд используется паттерн “Команда” - классы команд лежат в папке commands, интерфейс - commands/Command.hpp
Для приема команд от пользователя используется паттерн “Цепочка обязанностей” - на каждом уровне проверяются определенные условия, и если уже все верно, то происходит нужное действие. (Пример: в Manager::makeChoice() пользователь выбирает действие "создать юнита", вызывается CreateUnitCommand::execute(), в ней происходит дальнейшая работа с пользователем (выбор конкретного юнита), затем уже в GameField::createUnit() и Base::createUnit() завершается создание)
К первой работе добавлены итератор поля (в GameField.hpp) и создание юнитов происходит с помощью фабричного метода (objects/units/FactoryMethod.hpp, в классах юнитов добавлены классы, наследующиеся от objects/units/FactoryMethod.hpp, само создание в методе Base::createUnit().
теперь в классе поля нет указателя на базу, все базы и игроки содержатся в классе Manager
К первой работе добавлены итератор поля (в GameField.hpp) и создание юнитов происходит с помощью фабричного метода (objects/units/FactoryMethod.hpp, в классах юнитов добавлены классы, наследующиеся от objects/units/FactoryMethod.hpp, само создание в методе Base::createUnit().