Главная страница
Добро пожаловать на сайт, на котором вы можете попробовать свои силы в написании игрового бота
В качестве первого задания предлагается разработать бота для игры Bomberman
Новости
14.02.2022. Добавлена возможность создавать игры в двух новых режимах: "Дуэль" и "Непрочный 1vs1vs1vs1". В режиме "Дуэль" участвуют 2 игрока, начинающие в противоположных углах карты. В режиме "Непрочный 1vs1vs1vs1" все неразрушаемые блоки внутри поля заменены на разрушаемые по сравнению со стандартным режимом. Рейтинговые игры с этими режимами не создаются.
08.02.2022. Исправлена неточность в правилах: бомбы размещаются в конце каждого тика после перемещения всех игроков и обработки всех взрывов.
23.01.2022. Добавлена поддержка стратегий на языках Kotlin и Python. Для выполнения Python используется реализация на Java (Jython). В проверяющей системе на данный момент не работает подключение всех модулей из некоторого пакета, вместо команды from пакет import * после import нужно перечислять все нужные классы.
30.12.2021. В правила внесено следующее изменение: если несколько игроков размещают бомбы одновременно в одних и тех же координатах, будет размещена бомба случайного игрока. На сайте размещена обновленная версия утилиты LocalRunner.
23.12.2021. Вышла обновленная версия игры. Из-за изменения протокла общения игровых стратегий и сервера, все предыдущие присланные стартегии помечены как отклонённые, а игры и рейтинг удалены. В обновлении внесены следующие изменения:
- в правила игры добавлено огранчиение на количество жизней: в начале у стратегии 3 жизни, которые теряются после каждого подрыва бомбой. После потери всех жизней стратегия перестаёт управлять игроком;
- за подрыв соперника теперь выдаётся не 600, а 240 очков;
- за сбор каждого бонуса начисляется 6 очков;
- внесены небольшие изменения в языковой пакет и проткол общения.
Чтобы адаптировать вашу стратегию к новой версии нужно сделать следующее:
- Скачать новую версию языкового пакета, распаковать его и заменить в нём MyStrategy.java на вашу стратегию
- Изменить первую строку определения класса: вместо public class MyStrategy implements Strategy написать public class MyStrategy extends Strategy
- Для доступа к игровым постоянным нужно использовать специальный класс Rules. Версию игровых правил можно получить, используя getRules() после начала игры. Пример доступа к ширине и высоте игрового поля:
public Action getAction(Player player, World world) { ... Rules rules = getRules(); int w = rules.WORLD_WIDTH_IN_BRICKS; int h = rules.WORLD_HEIGHT_IN_BRICKS; ... }