localrunner является просто tcp-сервером, написанным на python2.7+tornado. При запуске он ждет соединения от двух tcp-клиентов со стратегией, после чего отсылаем им команду "начали!" и делает всё, что надо. В конце он отсылаем обоим команду "закончили" и завершается, сбрасывая в visualizer/game.js лог игры.
И сервер, и оба клиента при этом завершают свою работу.
Для успешной работы сервера нужно поставить необходимые пакеты из world/requirements.txt. Проще всего сделать это с помощью команды pip install -r world/requirements.txt
После этого можно сразу переходить в папку world и запускать python run.py. Сервер запустится и будет терпеливо ожидать коннекта от двух стратегий. Кроме того, в run.py можно параметром передать число, характеризующее random seed текущей игры. Например, если раз за разом запускать run.py 1209328, то раз за разом можно оттачивать стратегию на одинаковом наборе пассажиров под номером 1209328. Seed игры можно подсмотреть в визуализаторе, как при локальном запуске, так и при запуске игр на сайте.
Работающая стратегия состоит из обвязки и стратегии. Стратегия занимается логикой, обвязка же просто запускает стратегию как tcp-клиент.
Обвязку можно взять из списка доступных клиентов - берем нужный нам, подкладываем ему внутрь в папку core саму стратегию (для начала можно взять baseline отсюда).
Всё, tcp-клиент стратегии готов, можно запускать!
Таким образом нужно запустить любые две стратегии, они автоматом подконнектятся к tcp-серверу мира и начнут играть. Через некоторое время игра закончится и все три программы (два клиента и один сервер) завершатся, и можно будет посмотреть визуализацию игры.
Реализован просто и топорно - сервер в конце игры пишет все нужные данные в visualizer/game.js. Чтобы посмотреть игру, достаточно открыть в браузере visualizer/index.html
Крайне приветствуются pull-request-ы