Traineeship
Тестовое задание:
Создать прототип игры на движке Unity.
Описание задачи:
Квадратное игровое поле состоит из квадратов одного цвета.
Размер стороны игрового поля определяется при старте приложения случайным образом в диапазоне от 5 до 10 клеток.
Нажатие правой клавишей мыши на любую клетку поля помечает её, как клетку, в которой могут останавливаться юниты.
Количество помеченных клеток на карте ограничено только общим количеством клеток на карте.
Нажатие правой клавишей мыши на помеченную клетку переводит клетку в начальное состояние.
Выбор визуализации изменения состояния клетки - на усмотрение выполняющего задание (анимация/цвет).
Нажатие левой клавишей мыши на любую клетку поля создаёт в этой клетке куб.
Нажатие левой клавишей мыши на куб - удаляет его.
На карте присутствуют "юниты". Их количество определяется случайным образом при старте приложения в диапазоне от 1 до 5.
Каждый юнит выбирает случайную клетку на карте и движется к ней. Юнит не может передвигаться по клеткам, в которых есть кубы и останавливаться в них.
При достижении юнитом целевой клетки он выбирает новую случайную и продолжает движение.
При передвижении по карте юнит игнорирует других юнитов и может проходить сквозь них.
Случай, при котором юнит не может добраться до выбранной клетки, когда она заблокирована кубами, обрабатывать на усмотрение выполняющего задание (выбирать новую клетку, идти до ближайшей к целевой достижимой клетки, другое).
Реализовать UI элемент (button/toggle), по нажатию на который все юниты стремятся занять помеченные клетки и остановиться в них.
В одной клетке должен останавливаться только один юнит.
Повторное нажатие на UI элемент возвращает юнитам обычное поведение перемещения по карте.
Случай, в котором юнитов больше целевых клеток, обрабатывать на усмотрение выполняющего задание.
Допускается использовать готовые ассеты для поля и юнитов, а также алгоритмы для поиска путей юнитами.
В случае использования чужих алгоритмов следует знать, как они работают.