Правила
Всё что нужно знать о «Битве алгоритмов».
Цель игры
Напишите алгоритм, который проведёт вашего оператора через карту. Чтобы победить, оператору нужно подобрать хотя бы один ключ и затем добраться до выхода. В гонке карта может быть неизвестна заранее, а в дуэли она фиксирована и позволяет строить более точную стратегию.
Режимы игры
Гонка
Универсальный режим: карта может быть стандартной или случайно сгенерированной, а алгоритм не должен полагаться на знание раскладки заранее.
Дуэль
Карта фиксирована, доступен getOpponentPosition(), а через конструктор можно подготовить собственную арену и загрузить её в игру.
Условия победы
Ранний выход
Если оба оператора смогли выйти, выигрывает тот, кто сделал это раньше по шагам. Если выйти успел только один, он побеждает автоматически.
Одновременный финиш
Если оба оператора вышли на одном и том же шаге, система фиксирует ничью. Дополнительного тай-брейка по «меньшему числу ходов» сейчас нет.
Таймаут и незавершённый бой
Если никто не выбрался, преимущество получает оператор, который хотя бы подобрал ключ. Если ключ есть у обоих или ни у кого, результатом будет ничья.
Система очков
| Действие | Очки |
|---|---|
| Ключ есть в финальном состоянии | +50 |
| Оператор вышел из лабиринта | +100 |
| Бонус победителю за ранний выход | +25 |
| Таймаут без выхода | 0 |
Правила взаимодействия
Блокировка: операторы не могут занимать одну клетку. Если оператор пытается встать на занятую клетку, ход не выполняется.
Общие ключи: любой ключ может быть подобран любым игроком. На карте может быть один или два ключа, а оператору для выхода достаточно подобрать хотя бы один.
Параллельное выполнение: оба алгоритма выполняются независимо, после чего арена воспроизводит их покадрово. В дуэли можно дополнительно считывать позицию соперника.
Кастомные карты: конструктор пропускает только карты с 2 спавнами, 1 выходом, 1–2 ключами, рамкой из стен и полной достижимостью целей от обоих игроков.
Ограничения
Макс. шагов
1 000
На одно выполнение скрипта
Размер карты
6–20 × 4–14
Для генератора и конструктора карт
Язык
JavaScript
Стандартный JS, без внешних библиотек
API соперника
Только Duel
`getOpponentPosition()` доступен лишь в режиме дуэли
Запрещено
DOM / Сеть
Нет доступа к API браузера
Редактор карт
/map-editor
Кастомная карта применяется прямо в текущую игру