2048 codenjoy — как играть?

Игра создана на основе http://gabrielecirulli.github.io/2048/. Спасибо Авторам за идею.

Игровой сервер доступен сейчас в целях ознакомления http://codenjoy.com/codenjoy-contest

В чем суть игры?

Тебе предстоит добраться до 2048 (или даже дальше). Как это сделать? Каждый твой ход на поле в рендомном месте появляется несколько цифер 2. Ты можешь одной из комманд (LEFT, RIGHT, UP, DOWN) сбить все цифры к одной из сторон. При этом две одинаковые цифры стоящие рядом превращаются в одну, равную их сумме.

Очки расчитываются как максимальная сумма чисел на доске за всю игру.

Побеждает игрок с большим числом очков (до условленного времени).

Итак, игрок регистрируется на сервере, указывая свой email

Далее необходимо подключиться из кода к серверу через вебсокеты. Это Maven проект и подойдет он дял игры на JVM языках. Как его запустить смотри в корне README.txt

Для других языков придется написать свой клиент (а после пошарить с нами на почту: apofig@gmail.com)

Адрес для подключения к игре на сервере http://codenjoy.com:

ws://tetrisj.jvmhost.net:12270/codenjoy-contest/ws?user=email

Адрес для подключения к игре на сервере, развернутом в локальной сети:

ws://server_ip:8080/codenjoy-contest/ws?user=email

Тут email - имейл, указанынй при регистрации на сервере.

После подключения клиент будет регулярно (каждую секунду) получать строку символов — с закодированным состоянием поля. Формат таков

^board=(.*)$

с помощью этого regexp можно выкусить строку доски. Вот пример строки от сервера:

board=8A4AA2BB88488848442222222

Длинна строки равна площади поля (N*N). Если вставить символ переноса строки каждые N символов, то получится читабельное изображение поля. Координата [0,0] соответствует левому верхнему углу.

8A4AA
2BB88
48884
84422
22222

Расшифровка символов

_x('x') - препятствие, через которое цифра не пройдет
_2('2')
_4('4')
_8('8')
_16('A')
_32('B')
_64('C')
_128('D')
_256('E')
_512('F')
_1024('G')
_2048('H')
_4096('I')
_8192('J')
_16384('K')
_32768('L')
_65536('M')
_131072('N')
_262144('O')
_524288('P')
_1048576('Q')
_2097152('R')
_4194304('S')
NONE(' ')

Игра пошаговая, каждую секунду сервер посылает твоему клиенту (боту) состояние обновленного поля на текущий момент и ожидает ответа команды. За следующую секунду игрок должен успеть дать команду. Если не успел — ничего не менятеся.

Первая задача – написать websocket клиента, который подключится к серверу. Затем заставить цифры на поле слушаться команд. Таким образом, игрок подготовится к основной игре. Основная задача – вести осмысленную игру и победить.

Игра с открытым исходным кодом. Для реализации своей игры, исправления ошибок в текущей и внесения других правок необходимо для начала форкнуть проект. В корне репозитория есть описание в файле Readme.md - там описано, что делать дальше.

По возникающим вопросам, пиши в skype:alexander.baglay или на почту apofig@gmail.com