Правила

Всё что нужно знать о «Битве алгоритмов».

Цель игры

Напишите алгоритм, который проведёт вашего оператора через карту. Чтобы победить, оператору нужно подобрать хотя бы один ключ и затем добраться до выхода. В гонке карта может быть неизвестна заранее, а в дуэли она фиксирована и позволяет строить более точную стратегию.

Режимы игры

Гонка

Универсальный режим: карта может быть стандартной или случайно сгенерированной, а алгоритм не должен полагаться на знание раскладки заранее.

Дуэль

Карта фиксирована, доступен getOpponentPosition(), а через конструктор можно подготовить собственную арену и загрузить её в игру.

Условия победы

Ранний выход

Если оба оператора смогли выйти, выигрывает тот, кто сделал это раньше по шагам. Если выйти успел только один, он побеждает автоматически.

Одновременный финиш

Если оба оператора вышли на одном и том же шаге, система фиксирует ничью. Дополнительного тай-брейка по «меньшему числу ходов» сейчас нет.

Таймаут и незавершённый бой

Если никто не выбрался, преимущество получает оператор, который хотя бы подобрал ключ. Если ключ есть у обоих или ни у кого, результатом будет ничья.

Система очков

ДействиеОчки
Ключ есть в финальном состоянии+50
Оператор вышел из лабиринта+100
Бонус победителю за ранний выход+25
Таймаут без выхода0

Правила взаимодействия

1.

Блокировка: операторы не могут занимать одну клетку. Если оператор пытается встать на занятую клетку, ход не выполняется.

2.

Общие ключи: любой ключ может быть подобран любым игроком. На карте может быть один или два ключа, а оператору для выхода достаточно подобрать хотя бы один.

3.

Параллельное выполнение: оба алгоритма выполняются независимо, после чего арена воспроизводит их покадрово. В дуэли можно дополнительно считывать позицию соперника.

4.

Кастомные карты: конструктор пропускает только карты с 2 спавнами, 1 выходом, 1–2 ключами, рамкой из стен и полной достижимостью целей от обоих игроков.

Ограничения

Макс. шагов

1 000

На одно выполнение скрипта

Размер карты

620 × 414

Для генератора и конструктора карт

Язык

JavaScript

Стандартный JS, без внешних библиотек

API соперника

Только Duel

`getOpponentPosition()` доступен лишь в режиме дуэли

Запрещено

DOM / Сеть

Нет доступа к API браузера

Редактор карт

/map-editor

Кастомная карта применяется прямо в текущую игру