Игровой demo-сервер доступен так же в интернете 24/7 в целях ознакомления http://codenjoy.com/codenjoy-contest
Игра с открытым исходным кодом. Для реализации своей игры, исправления ошибок в текущей и внесения других правок необходимо для начала форкнуть проект. В корне репозитория есть описание в файле Readme.md - там описано, что делать дальше.
По возникающим вопросам, пиши в skype:alexander.baglay или на почту apofig@gmail.com
В чем суть игры?
Тебе предстоит собрать кубик рубика. Правил в сети есть великое множество - бери какой хочешь и реализуй его.
За собранный кубик игрок получит бонусные очки. Очки суммируются.
Побеждает игрок с большим числом очков (до условленного времени).
Итак, игрок регистрируется на сервере, указывая свой email
Далее необходимо подключиться из кода к серверу через вебсокеты. Это Maven проект и подойдет он для игры на JVM языках. Как его запустить смотри в корне проекта в файле README.txt
Для других языков придется написать свой клиент (а после пошарить с нами на почту: apofig@gmail.com)
Адрес для подключения к игре на сервере http://codenjoy.com:
ws://codenjoy.com:80/codenjoy-contest/ws?user=3edq63tw0bq4w4iem7nb&code=12345678901234567890
Адрес для подключения к игре на сервере, развернутом в локальной сети:
ws://server_ip:8080/codenjoy-contest/ws?user=3edq63tw0bq4w4iem7nb&code=12345678901234567890
Тут 'user' - id игрока, a 'code' - твой security token, его ты можешь получить из адресной строки браузера после регистрации/логина
После подключения клиент будет регулярно (каждую секунду) получать строку символов — с закодированным состоянием поля. Формат таков
^board=(.*)$
с помощью этого regexp можно выкусить строку доски. Вот пример строки от сервера:
board= BYY GWY RRO YWBWGYGBOBRRGBYOOBRGGORYWWRGWOWRYGOB WOG BYW OBR
Длинна строки равна площади поля (12*12). Если вставить символ переноса строки каждые 12 символов, то получится читабельное изображение поля. Левый верхний угол соответствует координате [0, 0].
BYY GWY RRO YWBWGYGBOBRR GBYOOBRGGORY WWRGWOWRYGOB WOG BYW OBR
Расшифровка символов
Пустое место
NONE(' ')
Цвета граней
RED('R') GREEN('G') YELLOW('Y') WHITE('W') ORANGE('O') BLUE('B')
Игра пошаговая, каждую секунду сервер посылает твоему клиенту (боту) состояние обновленного поля на текущий момент и ожидает ответа команды герою. За следующую секунду игрок должен успеть дать команду герою. Если не успел — герой стоит на месте.
Игрок может посылать команду серверу в формате ACT(N, M), где N - номер грани, а M - количество вращений по часовой стрелке (-1, 1, 2).
Грани нумируются так: 1 - левая (left) 2 - фронтальная (front) 3 - правая (right) 4 - задняя (back) 5 - верхняя (up) 6 - нижняя (down)
Вот их расположение на рисунке (D - down, L - left, F - front, R - right, U - up, B - back)
UUU UUU UUU LLLFFFRRRBBB LLLFFFRRRBBB LLLFFFRRRBBB DDD DDD DDD
Можно запросить новый кубик, для этого потребуется выполнить команду ACT(0). В этом случае будут начислены штрафные очки.
Первая задача – написать websocket клиента, который подключится к серверу. Затем заставить героя слушаться команды. Таким образом, игрок подготовится к основной игре. Основная задача – вести осмысленную игру и победить.