Аллоха
В этом соревновании тебе предстоит написать бота,
который будет соревноваться с другими ботами в попытках найти
наиболее оптимальный способ раcпетлять
лабиринт и набрать наибольшее кол-во очков.
Победитель получит фирменную футболку "С тебя пять тыщ".
А если участников будет больше 20, то три футболки лидерам турнирной сетки и супер-приз победителю :)
В игре на поле 15х15 соревнуются два LabyrinthPlayer (они же боты).
Цель - собрать как можно больше очков.
Карта генерируется рандомно, на ней так же появляются клетки с -16 очков, так что твоему боту стоит быть аккуратнее в передвижениях.
Твоя задача - реализовать интерфейс LabyrinthPlayer.
Перед началом игры, каждому боту выдается его номер на игровом поле (-1 или -2) вызовом takeYourNumber.
Каждый тик игры - это вызов метода step у соревнующихся ботов.
и их последующие перемещение в направлении, которое вернул метод.
В метод step передается актуальное состояние GameState.
Кол-во раундов бывает разным, как только roundsToEnd в GameState
станет равным нулю - игра завершается и начинается подсчет очков.
Если твой бот попытается выйти за границы карты или пойти в клетку, занятую другим игроком - он автоматически проигрывает раунд.
Запрещено:
- Использовать Reflection API
- Сторонние библиотеки
Ограничения:
- На один ход (step) дается 500 миллисекунд, в случае если бот не успел за 500 миллисекунд завершить метод step - он остается на месте.
- Лимит по памяти - 2 gb, есть где разгуляться. При превышении - выигрывает оппонент.
- Бот должен конструироваться от дефолтного конструктора (без параметров).
В процессе разработки своего решения очень полезным может оказаться отладчик DebuggerGUI::main
Можешь запускать в нем своего бота подретактировав Controller.
#f03c15 Attention:
javafx есть не во всех jdk, поэтому крайне рекомендую запускать на 8
Сражения ботов в рамках турнирной таблицы будут происходить без отладчика,
чтобы ускорить процесс.
Там будут задействованы ограничения по времени!
Чтобы прислать решение - форкни этот репозиторий.
Ссылку на файл с кодом своего бота пришли сюда.
Решение принимаю один раз, в случае дублирования - буду использовать самое первое.
Решения принимаются 12.03.2022 23:59
UPD: до 15.03.2022 23:59 по просьбам трудящихся