Открытое соревнование по программированию искусственного интеллекта

Утилита Repeater

Финал: до начала

Проект

Песочница

Раунд 1

Раунд 2

Финал

Последние комментарии

11 декабря 11:58: Eugene713 написал комментарий в посте Ещё немного хороших новостей ;)
11 декабря 11:47: Siont написал комментарий в посте Ещё немного хороших новостей ;)
11 декабря 11:36: Eugene713 написал комментарий в посте Ещё немного хороших новостей ;)
11 декабря 01:01: newpuk написал комментарий в посте Раунд 2
11 декабря 00:13: malinovsky239 написал комментарий в посте Раунд 2
10 декабря 23:38: kuzmalex написал комментарий в посте Раунд 2
10 декабря 23:25: malinovsky239 написал комментарий в посте Раунд 2
10 декабря 22:56: MikeWazowski написал комментарий в посте Раунд 2
10 декабря 19:13: Jeners написал комментарий в посте Ещё немного хороших новостей ;)
10 декабря 19:05: mixei4 написал комментарий в посте Ещё немного хороших новостей ;)

Группа ВКонтакте

Telegram-чат

 

Для упрощения процесса разработки стратегии у вас есть возможность запускать локальные повторы. Вы можете локально делать повтор протестированного на сервере боя. Для этого скачайте Repeater и разархивируйте. Для запуска Repeater вам необходимо установленное ПО Java 8+ Runtime Environment (найти JRE можно в соответствующем разделе на сайте Oracle).

Локальный повтор игры — это возможность запустить стратегию на вашем компьютере так, чтобы она видела игровой мир вокруг себя таким, каким он был при тестировании на сервере. Это поможет вам отлаживать, добавлять логирование и наблюдать за реакцией вашей стратегии в каждый момент игры.

Обратите внимание, что любое взаимодействие вашей стратегии с игровым миром при локальном повторе полностью игнорируется. Это означает, что каждый момент времени окружающий мир для стратегии в точности совпадает с таким, каким он был в игре, и не меняется от того, какие значения ваша стратегия записывает в объект move. Утилита не имеет полных данных о ходе игры (лишь те, что были отправлены вашей стратегии) и поэтому не может представить игру визуально. Если в вашей стратегии нет точек останова и/или отладочного вывода, она «молча» отработает и завершится.

Как пользоваться утилитой:

  1. авторизуйтесь на сайте, скачайте архив с утилитой и распакуйте в удобное для вас место;

  2. выберите игру с участием вашей стратегии и перейдите на страницу этой игры по ссылке в столбце “№”;

  3. если игра протестирована, то справа вы увидите кнопку «Локальный повтор»;

  4. при нажатии появится окно со списком всех ваших стратегий, участвующих в этой игре, и соответствующих им токенов;

  5. запустите Repeater, передав ему в качестве параметра командной строки скопированный токен, либо просто введя его в появивщуюся консоль, после чего Repeater скачает необходимые данные и будет ждать подключения вашей стратегии;

  6. скомпилируйте вашу стратегию, обратите внимание, что точка входа находится в файле Runner.{ext}, именно его и нужно запускать;

  7. после запуска ваша стратегия соединится с Repeater-ом, который проэмулирует поведение игрового мира при тестировании на нашем сервере.

Внимание! Локальный повтор доступен в течение 2-3 суток с момента создания игры!



ykaland

ykaland

API

Что-то Repeater не запускается у меня. Можно скачать откуда-нибудь старую версию?

18.11.2017 19:10:47
SladeThe

SladeThe

Команда Russian AI Cup

ykaland

ykaland

API

Что-то Repeater не запускается у меня. Можно скачать откуда-нибудь старую версию?

Вроде всё в порядке с текущей версией. А что не так? Какую ошибку выдаёт?

18.11.2017 20:20:20
Adler

Adler

Дзержинск

если на сайте токен выделят дойным кликом - то можно запросто потерять последние два символа токена

18.11.2017 21:55:27
OREZ

OREZ

AkBarsDigitalTechnologies

SladeThe

SladeThe

Команда Russian AI Cup

Вроде всё в порядке с текущей версией. А что не так? Какую ошибку выдаёт?

При запуске на винде repeater.bat файла мигают быстро 2 консольных окна и закрываются, ничего не происходит

19.11.2017 0:19:05
tyamgin

tyamgin

Симферополь

OREZ

OREZ

AkBarsDigitalTechnologies

При запуске на винде repeater.bat файла мигают быстро 2 консольных окна и закрываются, ничего не происходит

Можно убрать в батнике start "", и запустить из консоли. Тогда можно посмотреть ошибку.

19.11.2017 0:21:09
MrMorozis

MrMorozis

Метран

Такая беда:

Если пытаюсь запустить в Repeater’е игру против Leos, например 37459, 41522, где моя стратегия упала, то после скачивания реплея Repeater просто завершает работу без сообщения об ошибке. Игра не воспроизводится.

Если пытаюсь воспроизвести игру против другого игрока, где моя стратегия не падала, то все нормально. Это баг или фича? Стратегия падает по превышению ограничения времени только при игре против Leos. Я хочу узнать, почему, но в итоге падает и репитер! Чудеса.

19.11.2017 0:34:26
MrMorozis

MrMorozis

Метран

MrMorozis

MrMorozis

Метран

Такая беда: Если пытаюсь запустить в Repeater’е игру против Leos , например 37459 , 41522 , где моя стратегия упала, то после скачивания реплея Repeater просто завершает работу без сообщения об ошибке. Игра не воспроизводится. Если пытаюсь воспроизвести игру против другого игрока, где моя стратегия не падала, то все нормально. Это баг или фича? Стратегия падает по превышению ограничения времени только при игре против Leos. Я хочу узнать, почему, но в итоге падает и репитер! Чудеса.

UPD: Игры против Leos’a не воспроизводятся, даже если стратегия не упала.

19.11.2017 0:37:06
MrMorozis

MrMorozis

Метран

При падении выдает вот что:

[……………………………………………………………………. ………………………………………………………]

Bye Exception in thread “main” java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.io.ByteArrayOutputStream.grow(Unknown Source) at java.io.ByteArrayOutputStream.ensureCapacity(Unknown Source) at java.io.ByteArrayOutputStream.write(Unknown Source) at com.codegame.codeseries.repeater.Repeater.readStream(Repeater.java:17 2) at com.codegame.codeseries.repeater.Repeater.lambda$downloadDump$0(Repea ter.java:130) at com.codegame.codeseries.repeater.Repeater$$Lambda$1/28227499.accept(U nknown Source) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Sour ce) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) at java.util.concurrent.CountedCompleter.exec(Unknown Source) at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at java.util.concurrent.ForkJoinTask.doInvoke(Unknown Source) at java.util.concurrent.ForkJoinTask.invoke(Unknown Source) at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(Unknown Source ) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.forEach(Unknown Source) at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java: 88) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:299)

19.11.2017 0:55:09
dbf

dbf

A

MrMorozis, вообще это стандартная Java-ошибка о том, что не хватило памяти, может в программе утечка, но можно попробовать подлечить поменяв в файле repeater.bat строку -Xmx1G на -Xmx2G или -Xmx4G (добавив repeater памяти до 2 или 4 гб соответственно).

19.11.2017 1:52:45
MrMorozis

MrMorozis

Метран

Проблема решена.

Заменил в .bat для запуска репитера параметры на -Xms256M -Xmx1200M и все заработало.

Всем спасибо.

19.11.2017 2:00:15
AlexKol

AlexKol

BB

У меня вопрос. Как искать ошибки с помощью репитера? А токен вбиваю он скачивает, я запускаю свою стратегию. Она работает, ошибок нет. папам. Как понять что не так?

19.11.2017 19:30:08
MrMorozis

MrMorozis

Метран

AlexKol

AlexKol

BB

У меня вопрос. Как искать ошибки с помощью репитера? А токен вбиваю он скачивает, я запускаю свою стратегию. Она работает, ошибок нет. папам. Как понять что не так?

Возможно стоит добавить в свою стратегию точки дебага.

19.11.2017 22:28:45
SladeThe

SladeThe

Команда Russian AI Cup

AlexKol

AlexKol

BB

У меня вопрос. Как искать ошибки с помощью репитера? А токен вбиваю он скачивает, я запускаю свою стратегию. Она работает, ошибок нет. папам. Как понять что не так?

Нужно запускать именно с той версией стратегии, которая участвовала в игре. Если вы изменили даже какую-то мелочь, то поведение может сильно измениться.

19.11.2017 22:32:46
Gelon

Gelon

СберТех

“cant find dump ” ничего не понимаю (

22.11.2017 16:42:07
AlexKol

AlexKol

BB

Gelon

Gelon

СберТех

“cant find dump ” ничего не понимаю (

Может уже 3 дня прошло. Или ещё вроде писали если по 2ому щелчку выделять, то последние 2 символа не выделяются.

22.11.2017 16:47:44
BaR5uk

BaR5uk

Карачев

Не удаётся запустить утилиту Repeater. Подскажите, что я делаю не так? В папке с программой я создал файл start.bat, содержимое которого:

@java -Xms128M -Xmx2G -cp “.;*;%~dp0/*” -jar repeater.jar %1

Затем, я открываю командную строку, перехожу в эту папку и ввожу команду:

start.bat {токен}

Программа пишет:

Repeater Tool for Russian AI Cup By Russian AI Cup Team

[Sat Nov 25 10:20:30 GMT+03:00 2017]: Repeater has been started [token={токен}]

При этом в диспетчере задач видно, что началась активность у соединения с интернетом. Через некоторое время активность заканчивается, а программа выдаёт следующее:

[.ERROR: Can’t find dump by ‘{токен}’. java.io.FileNotFoundException: Can’t find dump by ‘{токен}’. at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:146) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:299)

Игру пробую посмотреть самую последнюю. Токен скопировал полностью. В чём может быть дело?

25.11.2017 10:26:00
Jeners

Jeners

Москва

Что такое, competed to process????

25.11.2017 14:56:55
mixei4

mixei4

КГУ

BaR5uk

BaR5uk

Карачев

Не удаётся запустить утилиту Repeater. Подскажите, что я делаю не так? В папке с программой я создал файл start.bat, содержимое которого: @java -Xms128M -Xmx2G -cp “.;*;%~dp0/*” -jar repeater.jar %1 Затем, я открываю командную строку, перехожу в эту папку и ввожу команду: start.bat {токен} Программа пишет: …

Доступ на запись в папку репитера есть? Он качает туда лог игры.

25.11.2017 18:24:17
SladeThe

SladeThe

Команда Russian AI Cup

BaR5uk

BaR5uk

Карачев

Не удаётся запустить утилиту Repeater. Подскажите, что я делаю не так? В папке с программой я создал файл start.bat, содержимое которого: @java -Xms128M -Xmx2G -cp “.;*;%~dp0/*” -jar repeater.jar %1 Затем, я открываю командную строку, перехожу в эту папку и ввожу команду: start.bat {токен} Программа пишет: …

Это с какой-то конкретной игрой или со всеми вашими недавними играми?

25.11.2017 18:33:05
BaR5uk

BaR5uk

Карачев

SladeThe

SladeThe

Команда Russian AI Cup

Это с какой-то конкретной игрой или со всеми вашими недавними играми?

Да. Все игры, что я пробовал, посмотреть не получилось. Программа пытается в течении 50-60 секунд что-то скачать из инета, после чего выдаёт ошибку, которую я привёл выше. Так происходит в большинстве случаев. Один раз программа выдала такую простыню:

[.ERROR: Can’t download dump by ‘24d1d2efa7fb167bda35f863e1768da479656b01_1’. java.io.IOException: Can’t download dump by ‘24d1d2efa7fb167bda35f863e1768da4796 56b01_1’. at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:151) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:299) Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) 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.lambda$downloadDump$0(Repeater.java:99) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) at java.util.concurrent.CountedCompleter.exec(Unknown Source) at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

У меня очень медленный мобильный интернет. Максимальная скорость где-то 15-18 килобайт/сек. Так что видео сражений моей стратегии я посмотреть не могу. Я надеялся, что есть возможность скачать файл с сырыми координатами на каждом ходу (не видео поток) скормить его какой-нибудь программе типа localranner и посмотреть игру с такой же графикой, как в этом самом localranner. Но такой функции на сайте я не нашёл. Программа Repeater тоже не работает (хотя подробной инструкции его возможностей я тоже не нашёл).

25.11.2017 19:17:39
mixei4

mixei4

КГУ

BaR5uk

BaR5uk

Карачев

Да. Все игры, что я пробовал, посмотреть не получилось. Программа пытается в течении 50-60 секунд что-то скачать из инета, после чего выдаёт ошибку, которую я привёл выше. Так происходит в большинстве случаев. Один раз программа выдала такую простыню: [.ERROR: Can’t download dump by ‘24d1d2efa7fb167bda35f863e1768da479656b01_1’. java.io.IOException: Can’t download dump by ‘24d1d2efa7fb167bda35f863e1768da4796 56b01_1’. at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:151) at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:299) Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) 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.lambda$downloadDump$0(Repeater.java:99) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) at java.util.concurrent.CountedCompleter.exec(Unknown Source) at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) …

Дамп игры весит несколько десятков мегабайт. 20000 тиков в архиве по-моему в районе 80мб.

25.11.2017 19:25:35
AlexKol

AlexKol

BB

Репитер не работает. Перестал данные получать

29.11.2017 12:18:43
tyamgin

tyamgin

Симферополь

Опять не работает repeater.

[Thu Nov 30 22:54:15 MSK 2017]: Repeater has been started [token=b9a0ebd15845bec2534dc918f3cabe0454547a25_0]
ERROR: Can't find dump by 'b9a0ebd15845bec2534dc918f3cabe0454547a25_0'.
java.io.FileNotFoundException: Can't find dump by 'b9a0ebd15845bec2534dc918f3cabe0454547a25_0'.
        at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:146)
        at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:299)

30.11.2017 22:56:55
jurifoll

jurifoll

Москва

Похоже, возникла аналогичная проблема. Пытается загрузить дамп и вылетает. Версию репитера обновлял только что.

02.12.2017 19:18:03
Acuion

Acuion

НИУ ВШЭ - НН

+, Repeater не работает

03.12.2017 0:38:05
tyamgin

tyamgin

Симферополь

Не работает repeater

[Thu Dec 07 21:29:42 MSK 2017]: Repeater has been started [token=a6b039b7a84ec8a9300562e3215e664232334d16_0]
[.....ERROR: Can't find dump by 'a6b039b7a84ec8a9300562e3215e664232334d16_0'.
java.io.FileNotFoundException: Can't find dump by 'a6b039b7a84ec8a9300562e3215e664232334d16_0'.
        at com.codegame.codeseries.repeater.Repeater.downloadDump(Repeater.java:146)
        at com.codegame.codeseries.repeater.Repeater.main(Repeater.java:299)

07.12.2017 21:31:37
kuzmalex

kuzmalex

pekach dev

падает

08.12.2017 21:02:52
jurifoll

jurifoll

Москва

Такое впечатление, что репитер все-таки работает, но только загружет дамп успешно только где-то в одной попытке из десяти. Печально(

09.12.2017 21:29:48