загрузка черновика…
Код ещё не собирался. Нажмите «Собрать и сыграть» или Ctrl+Enter.
Полный вывод g++
Загрузка…
Логи появятся после матча. Всё, что бот пишет в std::cout / std::cerr, попадает сюда.
Загрузка…
kuma.hpp — интерфейс SDK
только чтение · Ctrl+Space — подсказки в редакторе
Правила игры
тестовый матч играется по тем же правилам, что и турнир
Поле и ход
- Поле 60×45 клеток, в матче 4 медведя. В тестовом матче — вы и три встроенных бота, в турнире — четыре участника (недостающих заменяет встроенный «средний» бот, он не ранжируется).
- Старт — симметричные позиции по углам поля. Все ходят одновременно: каждый тик медведь сдвигается на одну клетку и оставляет за собой след.
- Ход — одно из четырёх направлений:
UP,DOWN,LEFT,RIGHT. ВашOnTickвызывается на каждом тике, пока медведь на поле.
Смерть и жизни
- Смерть: выход за поле, шаг в любой след (свой или чужой) или в чужую голову, разворот на 180°.
- Два медведя шагнули в одну клетку или поменялись клетками «лоб в лоб» — гибнут оба.
- Ошибка бота тоже смерть: не ответил за 100 мс, упал, ответил не направлением.
- После смерти след исчезает, медведь пропускает 3 тика и возрождается в безопасной клетке подальше от остальных.
- 3 жизни. Потерял все — выбыл, след убирается с поля.
Конец игры и места
- Игра заканчивается, когда на поле остался один медведь с жизнями. Все выбыли в один тик — ничья.
- Лимит длины — 5000 тиков. Если дожили несколько, выше тот, у кого больше жизней; при равенстве — делят место.
- Места в игре: кто дольше продержался, тот выше; оставшиеся — по жизням. Выбывшие в один тик делят место.
Турнир
- Матч — группа из четырёх. Ротация — 4 игры с одними и теми же условиями, в которых каждый стартует с каждой позиции. За место в игре: 3 / 2 / 1 / 0 очков, при дележе — поровну.
- Квалификация — швейцарская система группами по 4, по одной ротации на матч (3–5 раундов по числу участников). Лучшие 8 (или 4) выходят в плей-офф; при 4 участниках и меньше — сразу финал.
- Плей-офф: полуфиналы и финал по 2 ротации, из полуфинала проходят двое лучших. Финал определяет места 1–4.
- Равенство очков в квалификации: Бухгольц (сумма очков соперников), затем число первых мест, затем оставшиеся жизни, затем жребий. В матче плей-офф: первые места, жизни, затем выше посев.
- Сетка, результаты и реплеи публикуются во вкладке «Турнир» по мере расчёта.
Сдача решения
- До дедлайна (таймер в шапке, по часам сервера) можно собирать и тестировать сколько угодно. Успешные сборки — во вкладке «Версии».
- В турнир идёт версия, которую вы отметили финальной. Если не отметили — последняя успешно собранная к дедлайну.
- Черновик автоматически сохраняется на сервере: можно продолжить с другого компьютера.
Ограничения бота
- C++20 (GCC 12), один файл до 64 КБ, только стандартная библиотека. Заголовок
kuma.hppподключён автоматически. - 100 мс на ход, 1 с на запуск и конструктор, 256 МБ памяти. Бот — один процесс, одно ядро.
- Без потоков, дочерних процессов, файлов и сети: песочница их блокирует. Попытки обойти её фиксируются и могут закончиться дисквалификацией.
std::cout/std::cerr— в «Лог бота», игре не мешают.std::cinпуст.
Арена ждёт вашего медведя
Напишите стратегию слева и нажмите «Собрать и сыграть» (Ctrl+Enter).
Победа!