Войти | Зарегистрироваться


Главная страница

Добро пожаловать на сайт, на котором вы можете попробовать свои силы в написании игрового бота

В качестве первого задания предлагается разработать бота для игры 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. Вышла обновленная версия игры. Из-за изменения протокла общения игровых стратегий и сервера, все предыдущие присланные стартегии помечены как отклонённые, а игры и рейтинг удалены. В обновлении внесены следующие изменения:

Чтобы адаптировать вашу стратегию к новой версии нужно сделать следующее:

  1. Скачать новую версию языкового пакета, распаковать его и заменить в нём MyStrategy.java на вашу стратегию
  2. Изменить первую строку определения класса: вместо public class MyStrategy implements Strategy написать public class MyStrategy extends Strategy
  3. Для доступа к игровым постоянным нужно использовать специальный класс 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;
    		...
    	}