Battle of Algorithms

Правила

Коротко

Цель

Довести оператора до выхода. Ключи дают очки и помогают сравнить игроков, если никто не вышел.

Победа

Если вышли оба, побеждает более быстрый. Если вышел один, побеждает он. Если никто не вышел, решают ключи или ничья.

Карты

Проверяйте код на фиксированной карте, случайной генерации и сценарии из конструктора.

Перед отправкой

Код должен работать без внешних библиотек, сетевых запросов, DOM и бесконечных циклов.

Приватные бои

Комната создаётся после принятия приглашения. Код, карта и готовность подтверждаются до старта.

Как победить

Цель простая: подобрать хотя бы один ключ и довести оператора до выхода.

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

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

Очки

Ключ в финальном состоянии+50
Выход из лабиринта+100
Более ранний выход+25

Режимы

Гонка и дуэль

Гонка

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

Дуэль

Позволяет учитывать соперника через `getOpponentPosition()` и подстраивать тактику под конкретную арену.

Карты

Фиксированная

01

Для базового сравнения стратегий на одной и той же схеме.

Случайная

02

Для проверки устойчивости решения на новой раскладке.

Из конструктора

03

Для ручных сценариев и обмена конкретной картой по коду.

Перед отправкой

Прогони стратегию в трёх условиях, чтобы модерация получила не случайно рабочий код, а устойчивое решение.

  1. 1Прогон на фиксированной карте
  2. 2Несколько запусков на случайной карте
  3. 3Один сценарий на своей карте из конструктора

Тестовая арена

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

Fixed

Random

Custom

Seed и код карты

Seed

Нужен для повторяемой генерации случайной карты. Один и тот же seed при одинаковом размере даёт одинаковый результат.

Код карты

Нужен для обмена конкретной конфигурацией. Восстанавливает карту один в один, даже после ручных правок.

Комнаты

Приватный бой

1. Код

Игроки договариваются о комнате и конфигурации.

2. Готовность

Подтверждение идёт отдельно от выбора карты и кода.

3. Старт

После запуска комната становится read-only.

Проверки конструктора

На карте должны быть два спавна, выход и хотя бы один ключ.

Для обоих операторов проверяется достижимость ключей и выхода.

Размер ограничен диапазоном от 6×4 до 20×14.

Ограничения

  • Нет внешних библиотек и сетевых запросов.
  • Нет доступа к DOM и браузерному окружению.
  • Есть лимит шагов, поэтому тяжёлые и бесконечные циклы ломают стратегию.