Для упрощения процесса разработки стратегии у вас есть возможность запускать локальные повторы. Вы можете локально делать повтор протестированного на сервере боя. Для этого скачайте Repeater и разархивируйте. Для запуска Repeater вам необходимо установленное ПО Java 7+ Runtime Environment (найти JRE можно в соответствующем разделе на сайте Oracle).
Локальный повтор игры — это возможность запустить стратегию на вашем компьютере так, чтобы она видела игровой мир вокруг себя таким, каким он был при тестировании на сервере. Это поможет вам отлаживать, добавлять логирование и наблюдать за реакцией вашей стратегии в каждый момент игры.
Обратите внимание, что любое взаимодействие вашей стратегии с игровым миром при локальном повторе полностью игнорируется. Это означает, что каждый момент времени окружающий мир для стратегии в точности совпадает с таким, каким он был в игре, и не меняется от того, какие значения ваша стратегия записывает в объект move. Утилита не имеет полных данных о ходе игры (лишь те, что были отправлены вашей стратегии) и поэтому не может представить игру визуально. Если в вашей стратегии нет точек останова и/или отладочного вывода, она «молча» отработает и завершится.
Как пользоваться утилитой:
авторизуйтесь на сайте, скачайте архив с утилитой и распакуйте в удобное для вас место;
выберите игру с участием вашей стратегии и перейдите на страницу этой игры по ссылке в столбце “№”;
если игра протестирована, то справа вы увидите кнопку «Локальный повтор»;
при нажатии появится окно со списком всех ваших стратегий, участвующих в этой игре, и соответствующих им токенов;
запустите Repeater, передав ему в качестве параметра командной строки скопированный токен, либо просто введя его в появивщуюся консоль, после чего Repeater скачает необходимые данные и будет ждать подключения вашей стратегии;
скомпилируйте вашу стратегию, обратите внимание, что точка входа находится в файле Runner.{ext}, именно его и нужно запускать;
после запуска ваша стратегия соединится с Repeater-ом, который проэмулирует поведение игрового мира при тестировании на нашем сервере.
Внимание! Локальный повтор доступен в течение 5 суток с момента создания игры!
Actimind
Пробую послать стратегию - падает. Предлагают репитером прогнать бой локально и дают токен, но при попытке скормить токен репитеру получаю ошибку
ERROR: http://russianaicup.ru/boombox/data/verifications/ java.io.FileNotFoundException: http://russianaicup.ru/boombox/data/verifications/ at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:76) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:233)
Поскажите, что не так
не вижу кнопки саппорта поэтому сюда
--- repeater.sh.orig 2015-09-09 12:11:06.000000000 +0300 +++ repeater.sh 2015-11-14 13:15:49.793965763 +0300 @@ -1,5 +1,7 @@ +#!/bin/bash pushd
dirname $0> /dev/null SCRIPTDIR=
pwd` +JDIR=$(dirname $BASH_SOURCE) popd > /dev/null
-java -cp “.:*:$SCRIPTDIR/*” -jar repeater.jar $1 \ В конце файла нет новой строки +java -cp “.:*:$SCRIPTDIR/*” -jar “$JDIR”/repeater.jar $1`
не вижу кнопки саппорта поэтому сюда — repeater.sh.orig 2015-09-09 12:11:06.000000000 +0300 +++ repeater.sh 2015-11-14 13:15:49.793965763 +0300 @@ -1,5 +1,7 @@ +#!/bin/bash pushd dirname $0 > /dev/null SCRIPTDIR= pwd
+JDIR=$(dirname $BASH_SOURCE) popd > /dev/null -java -cp “.:*:$SCRIPTDIR/*” -jar repeater.jar $1 \ В конце файла нет новой строки +java -cp “.:*:$SCRIPTDIR/*” -jar “$JDIR”/repeater.jar $1
омг, как все печально….
БФТ
Что делать, если при запуске с верификационным дампом (v_a8d746df82a4fa519198962117911c7029d5d7d1) уже в 1-м тике приходит world = null?
Что делать, если при запуске с верификационным дампом (v_a8d746df82a4fa519198962117911c7029d5d7d1) уже в 1-м тике приходит world = null?
У меня тоже самое! world = null AttributeError: ‘NoneType’ object has no attribute ‘tick’
Кажется они что-то изменили в течение предыдущих двух часов и сломали ( Администрация, если вы это читаете, отетьте пожалуйста
У меня тоже самое! world = null AttributeError: ‘NoneType’ object has no attribute ‘tick’ Кажется они что-то изменили в течение предыдущих двух часов и сломали ( Администрация, если вы это читаете, отетьте пожалуйста
Да, они обновили языковые пакеты. Обновитесь, мне помогло.
Да, они обновили языковые пакеты. Обновитесь, мне помогло.
Обновил пакет .NET, мне не помогло :(
когда запустил утилиту для посылки не прошедшей верификацию и на вход в метод получаю world=null. так и должно быть?
когда запустил утилиту для посылки не прошедшей верификацию и на вход в метод получаю world=null. так и должно быть?
Попробуй обновить языковой пакет и локал раннер
Nizhny Novgorod
Не проходит верификация стратегии, т.к. при верификации используется трасса с частичной видимостью… обещали это сделать только в финале :( эххх. Печаль. Придётся срочно реализовывать поиск пути при частичной видимости. Может стоит пока временно отключить во время верификации трассы с частичной видимостью?
Не проходит верификация стратегии, т.к. при верификации используется трасса с частичной видимостью… обещали это сделать только в финале :( эххх. Печаль. Придётся срочно реализовывать поиск пути при частичной видимости. Может стоит пока временно отключить во время верификации трассы с частичной видимостью?
Поддерживаю!
Не проходит верификация стратегии, т.к. при верификации используется трасса с частичной видимостью… обещали это сделать только в финале :( эххх. Печаль. Придётся срочно реализовывать поиск пути при частичной видимости. Может стоит пока временно отключить во время верификации трассы с частичной видимостью?
Во время верификации стратегия тестируется на всех видах игр. Частичноя видимость появляется только на наборе 2x2. В остальных играх все осталось по-старому.
Во время верификации стратегия тестируется на всех видах игр. Частичноя видимость появляется только на наборе 2x2. В остальных играх все осталось по-старому.
Это конечно здорово! Но как теперь выкладывать новые версии, если у тебя не реализована функциональность, которая нужна только в финале? Городить временный костыль? :(
Это конечно здорово! Но как теперь выкладывать новые версии, если у тебя не реализована функциональность, которая нужна только в финале? Городить временный костыль? :(
Можно просто воткнуть костыль: проверять в начале move, что карта не содержит тайлов UNKNOWN.
Или так адаптировать стратегию, чтобы она хотя бы не падала.
Квартплата 24
Вопрос по тестам при посылке, мне кажется не стоило вводить тест с тайлами типа unknown до конца второго тура? Ведь они будут присутствовать только в финале. Теперь стратегии не поддерживающие этот тип тайла просто не проходят верификацию при отправке, например, которые строят путь всего круга в самом начале, опираясь на тип клетки. SladeThe На самом деле все предыдущие года было 3 теста по правилам каждого из этапов турнира. Это сделано как минимум для того, чтобы рано отправленная стратегия, по случайности прошедшая в Раунд 2 или даже Финал (а такое было), не падала там в начале игры, а делала что-то разумное. В крайнем случае сейчас можно проверять формат игры, если 2x2, то выходить из метода move, ничего не делая.
ООО "СК "РГС-Жизнь"
Здравствуйте, Пытаюсь запустить repeater со своим токеном. Через некоторое время получаю ошибку “Connection reset”. Точки останова не срабатывают. В консоль строка не выводится (в 1-й строке метода move стоит вывод в консоль).
Exception in thread “main” java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at RemoteProcessClient.readBytes(RemoteProcessClient.java:501) at RemoteProcessClient.readEnum(RemoteProcessClient.java:296) at RemoteProcessClient.readTeamSize(RemoteProcessClient.java:46) at Runner.run(Runner.java:25) at Runner.main(Runner.java:13)
Здравствуйте, Пытаюсь запустить repeater со своим токеном. Через некоторое время получаю ошибку “Connection reset”. Точки останова не срабатывают. В консоль строка не выводится (в 1-й строке метода move стоит вывод в консоль). Exception in thread “main” java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at RemoteProcessClient.readBytes(RemoteProcessClient.java:501) at RemoteProcessClient.readEnum(RemoteProcessClient.java:296) at RemoteProcessClient.readTeamSize(RemoteProcessClient.java:46) at Runner.run(Runner.java:25) at Runner.main(Runner.java:13)
Судя по всему, repeater обращается на сервер через какие-то порты, которые закрыты у нас в сети…
Perm
Обновил пакет .NET, мне не помогло :(
Поддерживаю, C#, обновил только что пакеты, не помогло
Сбербанк
У меня вроде бы работает. Подскажите а есть ли возможность сделать на подобии render-sync как в Local Runner? Чтобы можно было дебажить например и проигрывание останавливалось.
Ukraine
Java, repeater не работает, стратегию не принимает, т.к. изменились правила верификации… Приходит world=null - ладно, добавил проверку. Но теперь падает в Runner: java.lang.NullPointerException at Runner.run(Runner.java:50) at Runner.main(Runner.java:13)
Языковой пакет и Repeater только что обновил, не помогло
Java, repeater не работает, стратегию не принимает, т.к. изменились правила верификации… Приходит world=null - ладно, добавил проверку. Но теперь падает в Runner: java.lang.NullPointerException at Runner.run(Runner.java:50) at Runner.main(Runner.java:13) Языковой пакет и Repeater только что обновил, не помогло
P.S. сори, мой косяк, все работает
Universität Heidelberg
Кто-нибудь разобрался как в localRunner сделать так чтобы на трассе были только 2 машинки, а остальные либо убрать, либо сделать прозрачными?
Кто-нибудь разобрался как в localRunner сделать так чтобы на трассе были только 2 машинки, а остальные либо убрать, либо сделать прозрачными?
Покопайся в .properties, там все написано.
Tomsk
скомпилируйте вашу стратегию, обратите внимание, что точка входа находится в файле Runner.{ext}, именно его и нужно запускатьпросто запустить проект? если да, то как смотреть гонку?
Смотреть можно просто на сайте. Репитер - чтоб получить возможность продебажить, как работает код и почему машинка поехала именно так. Изменения всё равно не повлияют на то - как она будет ехать, потому реплей с сайта вполне актуален. Синхронизировать место - по номеру тика.
УжНУ
просто запустить проект? если да, то как смотреть гонку?
сразу нужно запустить local_runner.bat
Arkhangelsk
Почему то Repeater не может скачать дамп 137429 игры…Подскажите, как быть, остальные идут без проблем(
Почему то Repeater не может скачать дамп 137429 игры…Подскажите, как быть, остальные идут без проблем(
может прошло больше 5 суток?
может прошло больше 5 суток?
Игра была 24 ноября 14:49) Вроде еще не поздно(((
chernov.pw
Ваша стратегия «упала» в короткой проверочной игре 2x2. Процесс стратегии превысил ограничение по времени на тик. Как правильно использовать Repeater что бы определить нужное место, или просто увеличьте мне время :)) ?
Samara
Ваша стратегия «упала» в короткой проверочной игре 2x2. Процесс стратегии превысил ограничение по времени на тик. Как правильно использовать Repeater что бы определить нужное место, или просто увеличьте мне время :)) ?
Мне плз тоже увеличьте время.
TAP
Пытаюсь воспроизвести репитером. В 100% случаев падает на карте tyamgin. java.io.IOException: missing CR at sun.net.www.http.ChunkedInputStream.processRaw(Unknown Source) at sun.net.www.http.ChunkedInputStream.readAheadBlocking(Unknown Source) at sun.net.www.http.ChunkedInputStream.readAhead(Unknown Source) at sun.net.www.http.ChunkedInputStream.read(Unknown Source) at java.io.FilterInputStream.read(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source) at com.codegame.codeseries.repeater.Repeater.readStream(Repeater.java:102) at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:77) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:233)
ВолгГТУ
репитер не работает… java.io.FileNotFoundException: http://russianaicup.ru/boombox/data/verifications/81d9db3577949052cb7c5138730d611e2a72b539
У меня вроде бы работает. Подскажите а есть ли возможность сделать на подобии render-sync как в Local Runner? Чтобы можно было дебажить например и проигрывание останавливалось.
Смогли уже разобраться, как это сделать, или вопрос еще открыт? Если смогли, можете, пожалуйста, поделиться, как?)
Nizhny Novgorod
Беда с серверами, репитер получает ERROR: Server returned HTTP response code: 502
Aqtöbe
А есть возможность использовать repeater с визуальным рендером(как local-runner) ?
Смогли уже разобраться, как это сделать, или вопрос еще открыт? Если смогли, можете, пожалуйста, поделиться, как?)
Нет, не смог =)
Saratov
Пытаюсь запустить игру http://russianaicup.ru/game/view/244679 Получаю ошибку:
[Tue Dec 01 21:49:17 MSK 2015]: Repeater has been started [token=ec24aae43d9c50a6e4cb3163749c167806240be8] ERROR: http://russianaicup.ru/boombox/data/dumps/ec24aae43d9c50a6e4cb3163749c167806240be8 java.io.FileNotFoundException: http://russianaicup.ru/boombox/data/dumps/ec24aae43d9c50a6e4cb3163749c167806240be8 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1624) at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:76) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:233)
Что делать? :)
Пытаюсь запустить игру http://russianaicup.ru/game/view/244679 Получаю ошибку: [Tue Dec 01 21:49:17 MSK 2015]: Repeater has been started [token=ec24aae43d9c50a6e4cb3163749c167806240be8] ERROR: http://russianaicup.ru/boombox/data/dumps/ec24aae43d9c50a6e4cb3163749c167806240be8 java.io.FileNotFoundException: …
Вероятно, сервер опять упал.
Вероятно, сервер опять упал.
Уважаемые организаторы, вы можете проверить что было на сервере во время этой игры? Это вообще возможно? Дело в том, что именно во время нее моя стратегия показана как упавшая в самом начале. Почему она упала, я проверить не могу из-за ошибки выше, до и после этого случая стратегия не падала и repeater позволяет проиграть их, а эту нет…
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
Уважаемые организаторы, вы можете проверить что было на сервере во время этой игры? Это вообще возможно? Дело в том, что именно во время нее моя стратегия показана как упавшая в самом начале. Почему она упала, я проверить не могу из-за ошибки выше, до и после этого случая стратегия не падала и repeater позволяет проиграть их, а эту нет…
возможно даже что и упала она из за сбоя на сервере
Saratov
возможно даже что и упала она из за сбоя на сервере
Я вобщем это и хотел бы подтвердить у оргов. Мне как раз и важно узнать, что причиной падения был не мой код ;-)
P.S.: И, да, если подтвердится, что это был сервер, я требую компенсации в виде корректировки баллов!!! :-))))))))) Шутка, конечно!
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
Я вобщем это и хотел бы подтвердить у оргов. Мне как раз и важно узнать, что причиной падения был не мой код ;-) P.S.: И, да, если подтвердится, что это был сервер, я требую компенсации в виде корректировки баллов!!! :-))))))))) Шутка, конечно!
скорее всего если падение было по причине сервера, то игру перетестируют
Уважаемые организаторы, вы можете проверить что было на сервере во время этой игры? Это вообще возможно? Дело в том, что именно во время нее моя стратегия показана как упавшая в самом начале. Почему она упала, я проверить не могу из-за ошибки выше, до и после этого случая стратегия не падала и repeater позволяет проиграть их, а эту нет…
К сожалению, протоколы тестирования игр хранятся в системе очень недолго, и понять, что произошло именно с этой игрой уже нет возможности. Однако нам поступали жалобы на подобные падения от других участников и, как нам кажется, мы улучшили стабильность работы системы, и подобное больше не должно происходить. Если вы увидите такое сообщение о падении в новой игре, то дайте нам знать как можно быстрее, написав сообщение администрации, так как просматривать комментарии не всегда есть время/возможность.
Игра не рейтинговая, поэтому перезапускать большого смысла нет. Что касается репитера, то тут всё понятно: если стратегия не запустилась, значит и TCP-дампа нет.
NOKK SOFT, LLC
Отсылаю новую стратегию. Не принимается. Проверяю репитором. А у них на дефалтной карте тайл с координатами (0;3) типа 12 - UNKNOWN. Естественно на этом месте моя стратегия зависает. Логичный вопрос - чё за хрень? Я то сделаю заплатку для этого случаю, но если на других картах перекрёстки будут с типом 12, то это уже перебор!
Отсылаю новую стратегию. Не принимается. Проверяю репитором. А у них на дефалтной карте тайл с координатами (0;3) типа 12 - UNKNOWN. Естественно на этом месте моя стратегия зависает. Логичный вопрос - чё за хрень? Я то сделаю заплатку для этого случаю, но если на других картах перекрёстки будут с типом 12, то это уже перебор!
Читайте правила. Тип UNKNOWN теперь используется не только во время проверки новых версий, но и в новых форматах игры в песочнице.
Пытаюсь запустить вот эту игру в repeater: http://russianaicup.ru/game/view/369728
В этой игре нечто странное произошло. Во-первых, 2 (две!) стратегии разных игроков упали прям с самого начала, при том, что на этой же карте никогда раньше та же самая стратегия у меня не падала. Но это ладно. Допустим, кривые руки, и где-то баг сразу у 2 участников. Но еще я не могу эту стратегию запустить в repeater, вот что получаю:
$ ./repeater.sh Repeater Tool for Russian AI Cup By Russian AI Cup Team
Please, enter the participant’s token: 03a5edbc9648e13c982be463040f8eda89ed105d [Tue Dec 08 19:53:28 CET 2015]: Repeater has been started [token=03a5edbc9648e13c982be463040f8eda89ed105d] ERROR: http://russianaicup.ru/boombox/data/dumps/03a5edbc9648e13c982be463040f8eda89ed105d java.io.FileNotFoundException: http://russianaicup.ru/boombox/data/dumps/03a5edbc9648e13c982be463040f8eda89ed105d at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626) at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:76) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:233)
Как-то, на мой взгляд, слишком много совпадений. Как бы это выяснить, в чем дело? Хотя бы выяснить, почему repeater не запускается.