Для описания действий на Марсе была разработана математическая модель, которая содержит ключевые особенности реальных боевых действий.
Главными действующими лицами являются роботы, снабженные новейшими лазерными орудиями. Роботы производятся на специальных марсианских фабриках – базах. Боевые действия происходят на некоторой ограниченной территории, называемой локацией или полем. На поле расположены несколько баз, распределённых между различными командами – конкурирующими корпорациями.
Все роботы на поле принадлежат одной из команд, а база, принадлежащая команде, может изготавливать только роботов этой команды. На поле могут находиться т.н. нейтральные базы – не принадлежащие в данный момент времени ни одной из команд и не изготавливающие роботов.
Целью каждой команды является захват всех баз, расположенных на локации (а также уничтожение всех вражеских роботов). Захват баз осуществляют роботы, они же могут открывать огонь из орудий по роботам противника. Роботы имеют ограниченный радиус видимости и дальность стрельбы. Кроме того, роботы из одной команды могут передавать друг другу сообщения по рации в радиусе ее действия.
Игровое поле представляется гексагональной сеткой ячеек (клеток), состоящей из N рядов по М ячеек в каждом. Каждая клетка идентифицируется парой чисел (x, y), 0 ≤ x <M, 0 ≤ y <N, где y – номер ряда, x – номер клетки в ряду. Чётные ряды клеток смещены вправо на пол-ячейки относительно нечётных рядов.
Каждая клетка может быть либо пуста, либо в ней может находится робот или база. В одной клетке не может располагаться более одного объекта (робота или базы). Для произвольных двух клеток поля можно вычислить расстояние между ними как минимальное количество переходов, за которое можно достичь одной клетку из другой.
Перемещение по полю происходит в виде последовательности шагов из одной клетки в другую соседнюю клетку. Для каждого шага между клетками может быть определено направление движения в виде чисел от 1 до 6, в соответствии с рисунком (0 – отсутствие движения):
Элементами игрового поля могут быть базы и роботы.
База – неподвижный элемент поля, описывается набором значений <x, y, team, hitpoints, cooldown>. Пара (x, y) задаёт координаты клетки, в которой располагается база. Параметр team содержит номер команды, к которой принадлежит база; значение team равное -1 определяет нейтральную базу. Параметры hitpoints и cooldown задают такие характеристики базы, как её текущий запас прочности и время до создания следующего робота.
Робот – это мобильный (способный к перемещению) элемент поля, описывается набором значений <x, y, team, hitpoints, cooldown, memory>. Пара (x, y) задаёт текущие координаты робота, team – номер команды робота, hitpoints – запас прочности. Параметр cooldown определяет время до готовности робота к стрельбе. В переменной memory может храниться состояние памяти робота.
В работе модели могут использоваться следующие дополнительные параметры, определяющие характеристики конкретной локации, баз, роботов и т.д.:
Функционирование модели проходит в синхронном режиме, по тактам (итерациям). Каждый такт соответствует единичному интервалу модельного времени.
На каждом такте происходят следующие действия (в указанной последовательности):
Подробнее о каждом шаге: