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

Правила

Проект

Песочница

Раунд 1

Раунд 2

Финал

Песочница (на 19 октября 2014 г.)

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

3 ноября 19:39: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:36: andrey.chernov написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:33: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:30: andrey.chernov написал комментарий в посте Закрытие Russian AI Cup 2014
3 ноября 19:26: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
1 октября 13:18: andrey.chernov написал комментарий в посте Закрытие Russian AI Cup 2014
29 сентября 10:26: alevlaber написал комментарий в посте Закрытие Russian AI Cup 2014
4 сентября 14:57: steleal написал комментарий в посте Закрытие Russian AI Cup 2014
4 сентября 14:56: steleal написал комментарий в посте Закрытие Russian AI Cup 2014
4 сентября 08:24: zavod написал комментарий в посте Закрытие Russian AI Cup 2014

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

 

Вы можете скачать подробные правила в формате PDF. В них изложен формат проведения турнира, дано описание игрового мира и технических характеристик объектов. Кроме того, там вы найдёте JavaDocs для всех стандартных классов, используемых в стратегиях.

Также правила опубликованы на GitHub. Как и на нашем сайте, там вы всегда сможете найти актуальную версию правил, а также отслеживать историю внесённых правок.



jalomic

jalomic

Санкт-Петербург

“Однако вы можете добавлять в стратегию свои файлы с кодом. Эти файлы должны находиться в том же каталоге, что и основной файл стратегии” Подкаталоги нельзя пихать чтоли ? Бардак же :( да и вообще ужас какой-то…

08.09.2014 21:31:32
Nosmo

Nosmo

Киев

1.6 Территория проведения Конкурса Конкурс проводится на территории Российской Федерации

Участвовать могут только те, кто из России?

08.09.2014 22:28:46
steleal

steleal

Ульяновск

Nosmo

Nosmo

Киев

1.6 Территория проведения Конкурса Конкурс проводится на территории Российской Федерации Участвовать могут только те, кто из России?

Нет, участвуйте ). Если Вы будете в числе победителей, думаю, футболку-то на Украину вышлют.

09.09.2014 11:46:48
m00t

m00t

Freelance

steleal

steleal

Ульяновск

Нет, участвуйте ). Если Вы будете в числе победителей, думаю, футболку-то на Украину вышлют.

В прошлом году футболку в РБ прислали без проблем.

09.09.2014 11:48:27
m00t

m00t

Freelance

Я уже спрашивал на Хабре, спрошу и тут. В игре есть много физики (шайбы с бортиками, трение), уравнений которой нету в правилах. Кто-то достанет ее из LocalRunner, кто-то будет вычислять как-то, кто-то не сможет. Может быть опубликовать все эти уравнения, чтобы все были в равных условиях? Тогда нужно будет потратить меньше времени на подготовку и можно будет потратить больше на стратегию.

09.09.2014 11:51:10
birne

birne

Екатеринбург

Хотелось бы узнать, можно ли использовать сторонние библиотеки? А то AForge.NET пригодилась бы. jalomic +1

09.09.2014 14:27:18
cNoNim

cNoNim

DataArt

Такой вопрос… я конечно понимаю, что вряд ли организаторы пойдут на столь серьезный шаг, но вдруг.

Я думаю все кто хотел уже давно определили мертвую зону у вратаря, там собственно даже стараться не надо. С фиксированной логикой поведения вратаря, на глаз видно, что бить в ворота надо под 45 градусов к дальней штанги. Так может мы таки дать возможность рулить поведением вратаря? Что бы он не забивался в угол, а как то старался все таки защитить ворота.

Мое предложение заключается в следующем.

1) Дать возможность управлять позицией вратаря

2) Дать вратарю клюшку, которой он сможет перемещать возле себя вдоль плоскости ворот, убрать коллизию между вратарем и шайбой, но добавить колизию с его клюшкой

при этом скорость вратаря уменьшить, а скорость клюшки сделать побольше может появится хоть какой то смысл в пасах.

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

PS: А начал я бы с того, что даже, не добавляя клюшку, поведение вратаря можно улучшить.

09.09.2014 18:35:28
Anarion

Anarion

Бишкек

Стратегии с частыми передачами шайбы между союзниками неэффективны изза низкой вероятности поймать эту шайбу.

09.09.2014 20:04:13
dantistus

dantistus

Freelance Web & Graphic Designer

steleal

steleal

Ульяновск

Нет, участвуйте ). Если Вы будете в числе победителей, думаю, футболку-то на Украину вышлют.

Я сегодня общался насчет футболки, мне написали, что на Украину сейчас посылки не доходят :(

09.09.2014 20:57:44
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

я правильно понимаю что граница хоккейного поля по ординатам ограничена между 170 и 723? Так нарисовано в документации

09.09.2014 22:34:10
admin

admin

Команда Russian AI Cup

Nosmo

Nosmo

Киев

1.6 Территория проведения Конкурса Конкурс проводится на территории Российской Федерации Участвовать могут только те, кто из России?

Нет, имеется в виду, что инфраструктура для проведения находится в России. Конкурс открыт для всех.

09.09.2014 22:55:43
Ant

Ant

ООО АИС Город

Из документации:

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

Но

getHockeyistMaxSpeed Возвращает максимальную скорость перемещения полевого хоккеиста

Это противоречит друг другу, или я чего-то недопонял?

И есть ли какая-нибудь возможность рассчитать трение?

09.09.2014 23:19:27
donkihot

donkihot

Казахстан

Уберите пожалуйста гим америки со старта матча? С какого перепугу он вообще там делает? У нас ведь russianaicup, там вставьте гимн России, будет приятней и лучше.

09.09.2014 23:33:04
Ermak

Ermak

МГУ им. М.В. Ломоносова

для полноты картины хотелось бы еще увидеть формулу силы трения, которая замедляет все объекты и нужные коэффициенты в классе game

10.09.2014 2:38:57
erwins

erwins

Мегафон

1. Какое ограничение на размер дирректории? У меня например в первом приближении получается необходимый размер больше 2Г (не оперативной памяти, а места на диске)

  1. Почему нельзя отсылать готовые сборки нет и джавы? зачем их компилировать на сервере? это автоматически даст поддержку ВСЕМ языкам НЕТ и Джавы.

10.09.2014 10:29:11
Anarion

Anarion

Бишкек

erwins

erwins

Мегафон

  1. Какое ограничение на размер дирректории? У меня например в первом приближении получается необходимый размер больше 2Г (не оперативной памяти, а места на диске) Почему нельзя отсылать готовые сборки нет и джавы? зачем их компилировать на сервере? это автоматически даст поддержку ВСЕМ языкам НЕТ и Джавы. …

Насчёт дирректории в два гига - вы же в курсе о временных ограничения работы вашей стратегии? Елси вы будетезагружать 2 гига кусками по 200 метров в память (бОльшими нельзя - ограничение памяти) вы по любому выпадете за ограничение времени по IO

10.09.2014 11:51:58
SladeThe

SladeThe

Команда Russian AI Cup

erwins

erwins

Мегафон

  1. Какое ограничение на размер дирректории? У меня например в первом приближении получается необходимый размер больше 2Г (не оперативной памяти, а места на диске) Почему нельзя отсылать готовые сборки нет и джавы? зачем их компилировать на сервере? это автоматически даст поддержку ВСЕМ языкам НЕТ и Джавы. …
  1. Больше 2Гб. Используя диск, вы скорее упрётесь в ограничение по времени, чем по размеру. Однако, мы вообще не рекомендуем использовать диск и не даём никаких гарантий относительно скорости чтения/записи. Диск могут использовать другие процессы и скорость работы вашей стратегии может сильно отличаться от игры к игре. Также следует помнить, что сохранённые в одной игре файлы не будут доступны в другой игре.

  2. Компиляция на сервере является частью системы безопасности: таким образом нельзя подменить стандартные файлы пакета. Помимо этого, мы можем просматривать исходники попыток, в том числе, чтобы отслеживать читеров.

10.09.2014 11:53:00
pset88

pset88

Нижний Новгород

А формулу для расчета скорости с учетом силы трения самим подбирать?)

10.09.2014 12:01:21
SladeThe

SladeThe

Команда Russian AI Cup

pset88

pset88

Нижний Новгород

А формулу для расчета скорости с учетом силы трения самим подбирать?)

В целом да. В качестве подсказки: мы используем движок Phys2D. Собственно поэтому мы не можем предоставить точные формулы. Однако исходники движка легко гуглятся, и при желании можете их почитать.

10.09.2014 12:09:43
erwins

erwins

Мегафон

SladeThe

SladeThe

Команда Russian AI Cup

  Больше 2Гб. Используя диск, вы скорее упрётесь в ограничение по времени, чем по размеру. Однако, мы вообще не рекомендуем использовать диск и не даём никаких гарантий относительно скорости чтения/записи. Диск могут использовать другие процессы и скорость работы вашей стратегии может сильно отличаться от игры к игре. Также следует помнить, что сохранённые в одной игре файлы не будут доступны в другой игре. ...

Т.е. нельзя включать внешние компоненты dll? Есть ли ограничение на размер исходника? Если размер будет велик и сложно написан, то его просмотр теряет смысл. Будут ли блокироваться такие программы? Что считается читерством?

10.09.2014 13:12:16
erwins

erwins

Мегафон

Anarion

Anarion

Бишкек

Насчёт дирректории в два гига - вы же в курсе о временных ограничения работы вашей стратегии? Елси вы будетезагружать 2 гига кусками по 200 метров в память (бОльшими нельзя - ограничение памяти) вы по любому выпадете за ограничение времени по IO

Если это база данных, то читать ее целиком не нужно. Объем чтения будет десятки килобайт.

10.09.2014 13:14:11
SladeThe

SladeThe

Команда Russian AI Cup

erwins

erwins

Мегафон

Т.е. нельзя включать внешние компоненты dll? Есть ли ограничение на размер исходника? Если размер будет велик и сложно написан, то его просмотр теряет смысл. Будут ли блокироваться такие программы? Что считается читерством?

“Т.е. нельзя включать внешние компоненты dll?” Нет.

“Есть ли ограничение на размер исходника?” Да, 1 МБ.

“Что считается читерством?” То, что запрещено правилами и соглашением об участии. Например, совместное участие, испоьзование кода или его части других участников; использование команд типа sleep(); другие способы дестабилизации тестирующей системы.

10.09.2014 15:00:41
HiVaccessdenied

HiVaccessdenied

ООО "Мера НН"

cNoNim

cNoNim

DataArt

Такой вопрос… я конечно понимаю, что вряд ли организаторы пойдут на столь серьезный шаг, но вдруг. Я думаю все кто хотел уже давно определили мертвую зону у вратаря, там собственно даже стараться не надо. С фиксированной логикой поведения вратаря, на глаз видно, что бить в ворота надо под 45 градусов к дальней штанги. Так может мы таки дать возможность рулить поведением вратаря? Что бы он не забивался в угол, а как то старался все таки защитить ворота. …

Вот да, вообще сильно удивился, узнав о невозможности управлять вратарем. Ну он же совершенно тупо двигается! Зачем вообще это ограничение наложено? Отдайте его нам, стратегии будут намного интереснее.

10.09.2014 22:05:08
winchester7

winchester7

ITserw

Подскажите пожалуйста, как работает увеличение изменчивости рейтинга?

После нажатия галочки при игре http://russianaicup.ru/game/view/40371 обыграл соперника со счетом 4:1, и у нас обоих почему-то уменьшился рейтинг. Причем у меня аж на 266. В чем логика состоит?

11.09.2014 6:42:57
mscvkl

mscvkl

DataArt

SladeThe

SladeThe

Команда Russian AI Cup

В целом да. В качестве подсказки: мы используем движок Phys2D. Собственно поэтому мы не можем предоставить точные формулы. Однако исходники движка легко гуглятся, и при желании можете их почитать.

Мне кажется это стоит описать в правилах, а не в комментариях

11.09.2014 8:14:55
salimbek

salimbek

ООО "ТД Челны-хлеб"

В правилах написано: Тогда командам назначается дополнительное время. Если к этому моменту не было забито ни одного гола, то вратари обеих команд убираются из игрового мира. А в этом матче вратари остались: http://russianaicup.ru/game/view/42866 - правила изменились? На гитхабе ничего такого не обнаружил

11.09.2014 10:05:22
salimbek

salimbek

ООО "ТД Челны-хлеб"

winchester7

winchester7

ITserw

Подскажите пожалуйста, как работает увеличение изменчивости рейтинга? После нажатия галочки при игре http://russianaicup.ru/game/view/40371 обыграл соперника со счетом 4:1, и у нас обоих почему-то уменьшился рейтинг. Причем у меня аж на 266. В чем логика состоит?

Логика в том, что много сыгранных ранее неудачных игр будут портить твою статистику, поэтому даже при крутой стратегии рейтинг будет расти медленно. С галочкой рейтинг сбрасывается, но зато расти будет быстрее. Выгодно эту галочку ставить отставающим, и невыгодно - ТОП-ам

11.09.2014 10:09:52
CyberWo1f

CyberWo1f

Тюмень

salimbek

salimbek

ООО "ТД Челны-хлеб"

В правилах написано: Тогда командам назначается дополнительное время. Если к этому моменту не было забито ни одного гола, то вратари обеих команд убираются из игрового мира. А в этом матче вратари остались: http://russianaicup.ru/game/view/42866 - правила изменились? На гитхабе ничего такого не обнаружил

Ну так в этой игре были забиты голы, а вратари убираются если счет 0-0

11.09.2014 10:15:32
Phil

Phil

МФТИ

В правилах написано про установление контроля над шайбой: “Это значение РАВНОМЕРНО уменьшается с ростом скорости шайбы, достигая (но не останавливаясь на) 50% при 20.0 тиках -1”; а про удар по движущейся шайбе: “Это значение уменьшается с ростом скорости шайбы, достигая 75% при 20.0 тиках -1”. А вот при ударе вероятность тоже равномерно рассчитывается? Или закон сий нам не доступен?

11.09.2014 10:16:02
salimbek

salimbek

ООО "ТД Челны-хлеб"

CyberWo1f

CyberWo1f

Тюмень

Ну так в этой игре были забиты голы, а вратари убираются если счет 0-0

А ведь верно, извиняюсь за невнимательность…

11.09.2014 10:16:15
LeeT

LeeT

Россия

Есть предложение Организаторам если это возможно, сделать в середине игры смену сторон(поменять расположение команд на противоположное), например на 3000 тиках (то есть сделать 2 тайма по 3000 тиков). P.s Данные поправки помогут найти ошибки в стратегиях которые сделаны в зависимости от расположения команды

11.09.2014 11:21:56
vitsum

vitsum

ТПУ

LeeT

LeeT

Россия

Есть предложение Организаторам если это возможно, сделать в середине игры смену сторон(поменять расположение команд на противоположное), например на 3000 тиках (то есть сделать 2 тайма по 3000 тиков). P.s Данные поправки помогут найти ошибки в стратегиях которые сделаны в зависимости от расположения команды

А нефиг такие стратегии делать :D

11.09.2014 11:49:33
vitsum

vitsum

ТПУ

vitsum

vitsum

ТПУ

А нефиг такие стратегии делать :D

я ступил)

11.09.2014 11:50:56
dethariel

dethariel

Санкт-Петербург

Я правильно понимаю, что после удара по шайбе ее направление совпадает с направлением наносившего удар хоккеиста?

11.09.2014 13:31:11
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

dethariel

dethariel

Санкт-Петербург

Я правильно понимаю, что после удара по шайбе ее направление совпадает с направлением наносившего удар хоккеиста?

Из документации - “направление скорости шайбы становится равным направлению удара”.

11.09.2014 14:16:16
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

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

11.09.2014 14:17:25
dethariel

dethariel

Санкт-Петербург

amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

Из документации - “направление скорости шайбы становится равным направлению удара”.

Это я тоже видел, но не до конца понял. “Направление удара” это направление хоккеиста? Просто пасс получается гораздо более контролируемым

11.09.2014 14:25:44
SladeThe

SladeThe

Команда Russian AI Cup

amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

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

Не совсем. Дело в том, что есть два различных воздействия на скорость объекта: сила трения и сила сопротивления воздуха. Потери засчёт силы трения одинаковы для всех юнитов. А вот потери засчёт силы сопротивления воздуха у шайбы меньше засчёт лучших аэродинамических характеристик :) Условно говоря, ваше предположение верно при околонулевых скоростях, а с ростом скорости замедление хоккеиста растёт гораздо быстрее замедления шайбы.

11.09.2014 14:28:47
SladeThe

SladeThe

Команда Russian AI Cup

dethariel

dethariel

Санкт-Петербург

Это я тоже видел, но не до конца понял. “Направление удара” это направление хоккеиста? Просто пасс получается гораздо более контролируемым

Направление удара — это направление хоккеиста +/- случайное отклонение.

11.09.2014 14:32:28
Ariant
SladeThe

SladeThe

Команда Russian AI Cup

Направление удара — это направление хоккеиста +/- случайное отклонение.

Из той же оперы вопрос: “В случае успеха модуль скорости шайбы мгновенно становится равным 20.0∗StrikePower+SpeedStriker∗cos(AngleStriker−SpeedAngleStriker), (2.3) где StrikePower—относительная сила удара, а SpeedStriker, AngleStriker и SpeedAngleStriker — соответственно модуль скорости, угол поворота и угол скорости хоккеиста, совершающего удар” здесь AngleStriker относительно чего берется?

11.09.2014 19:18:22
Beard

Beard

Москва

Из той же оперы вопрос: “В случае успеха модуль скорости шайбы мгновенно становится равным 20.0∗StrikePower+SpeedStriker∗cos(AngleStriker−SpeedAngleStriker), (2.3) где StrikePower—относительная сила удара, а SpeedStriker, AngleStriker и SpeedAngleStriker — соответственно модуль скорости, угол поворота и угол скорости хоккеиста, совершающего удар” здесь AngleStriker относительно чего берется?

В тех же правилах написано. Это угол относительно оси абсцисс, положительный в сторону “по часовой стрелке”.

11.09.2014 19:21:40
Ariant
Beard

Beard

Москва

В тех же правилах написано. Это угол относительно оси абсцисс, положительный в сторону “по часовой стрелке”.

Не вижу, где. В любом случае, спасибо

11.09.2014 19:24:11
Yom

Yom

Россия

Пишу на С++. Взял стратегию из примера, перевёл с Java на С++, у меня она компилируется. Пытаюсь выслать её - выскакивает ошибка компиляции: ‘model::HockeyistType’ is not a class or namespace как будто не распознаётся namespase “model”. В чём дело, как бороться?

11.09.2014 22:10:49
impetus

Зачем введены эти 300 тиков после гола? Получается, что каждый гол уменьшает время игры на 300 тиков, и при разнице в 2 гола за <300 до конца матча уже не отыграться. Почему бы не сделать это время “вне игры” неигровым, без обновления времени матча. В настоящем хоккее используется только “чистое” время, в неигровых моментах хронометраж не обновляется.

12.09.2014 0:10:22
Mr.Smile

Mr.Smile

Москва

Установите, пожалуйста, хоккеистам бесконечный момент инерции. А то получается, что помимо явно задаваемого угла поворота есть еще скрытая угловая скорость, которая набирается при ударах об других хоккеистов.

12.09.2014 0:53:35
Yaptro

Yaptro

БГУ

Mr.Smile

Mr.Smile

Москва

Установите, пожалуйста, хоккеистам бесконечный момент инерции. А то получается, что помимо явно задаваемого угла поворота есть еще скрытая угловая скорость, которая набирается при ударах об других хоккеистов.

Зачем? Это физика такая. Даже есть вроде бы функция угловой скорости хоккеистов.

12.09.2014 1:11:03
winchester7

Зачем введены эти 300 тиков после гола? Получается, что каждый гол уменьшает время игры на 300 тиков, и при разнице в 2 гола за <300 до конца матча уже не отыграться. Почему бы не сделать это время “вне игры” неигровым, без обновления времени матча. В настоящем хоккее используется только “чистое” время, в неигровых моментах хронометраж не обновляется.

Полезное замечание. Плюсую, было бы лучше.

12.09.2014 1:11:58
perumeni

Зачем введены эти 300 тиков после гола?

В это время можно менять игроков. Позже пригодится.

12.09.2014 1:52:41
impetus

В это время можно менять игроков. Позже пригодится.

Понятно, но что мешает останавливать отсчет игрового времени в этот период?

12.09.2014 6:43:30
perumeni

Понятно, но что мешает останавливать отсчет игрового времени в этот период?

Чтобы сменить игрока надо подъехать в левый (или правый, в зависимости от стороны) угол и сделать это за 300 тиков. То есть игра совсем не останавливается, просто в это время не считаются голы. Можно мешать уставшим хоккеистам оппонента, чтобы не получилось у них смениться. Своих уставших, опять же, надо по-быстрому подвести объезжая препятствия.

Разве что можно эти 300 тиков потом прибавлять к основным тикам, но как-то не вижу в этом смысла. В одной игре из ста они тебе помогут, в еще одной из ста ты из-за этого проиграешь.

12.09.2014 7:06:59
Chronos

Chronos

Омск

А как ворота сбивать?

13.09.2014 0:28:15
DVS

DVS

здесь может быть Ваша компания! :)

Chronos

Chronos

Омск

А как ворота сбивать?

это просто. отколупить дощечку справа и прибить ее с другой стороны. дерзайте :)

13.09.2014 9:35:00
MagAlex

MagAlex

Нижний Новгород

В п. 2.3 правил сказано, что базовый шанс установить контроль над шайбой составляет 160%, а базовый шанс ударить по шайбе равен 175%. Объясните пожалуйста, почему вероятность получилась больше 100%?

13.09.2014 13:28:29
amurushkin

amurushkin

ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)

MagAlex

MagAlex

Нижний Новгород

В п. 2.3 правил сказано, что базовый шанс установить контроль над шайбой составляет 160%, а базовый шанс ударить по шайбе равен 175%. Объясните пожалуйста, почему вероятность получилась больше 100%?

скорее всего потому что в дальнейшем на него будут оказывать действие характеристики хоккеиста

13.09.2014 15:19:17
Diversus

Diversus

SoftOnIT.RU

А есть ли в local runer возможность провести сразу несколько боев?

13.09.2014 15:45:40
SladeThe

SladeThe

Команда Russian AI Cup

MagAlex

MagAlex

Нижний Новгород

Но ведь какие действия не совершать, вероятность наступления события всегда лежит в пределах от 0% до 100%.

В правилах указано, что шанс любого вероятностного события в игре лежит в интервале от 5% до 95%. 160%/175% — это базовое значение, одно из слагаемых в формуле.

13.09.2014 17:54:58
ud1

ud1

Химки

Вопрос по методу getRandomSeed. Это число получается вызовом Random.getNextLong от рандома который используется локал ранером для обработки случайностей. Но зная это число, можно восстановить текущий сид рандома и предсказывать его будущие возвращаемые случайные числа, а соотвественно убрав полностью влияние случая в игре - декомпилировав и разобравшись в работе ранера можно точно знать, будет ли какое- действия успешным или нет, и управлять этим в свою пользу, что является колоссальным преимуществом перед остальными. Вот доказательство возможности предсказания рандома: http://ideone.com/lbCeca Вопрос, является ли это законным или даже тихо подразумевающейся возможностью в игре? Если нет, то может стоит вообще убрать этот метод, ведь пользователям он по большей части он и не нужен, при желании в своих рандомах они могут использовать свою константу в качестве сида.

14.09.2014 13:53:03
dantistus

dantistus

Freelance Web & Graphic Designer

В это время можно менять игроков. Позже пригодится.

Черт, а я задумал в это время заскриптовать танец, радостный или печальный в зависимости от того, в чьи ворота был забит гол :D

14.09.2014 15:38:24
dantistus

dantistus

Freelance Web & Graphic Designer

Yom

Yom

Россия

Пишу на С++. Взял стратегию из примера, перевёл с Java на С++, у меня она компилируется. Пытаюсь выслать её - выскакивает ошибка компиляции: ‘model::HockeyistType’ is not a class or namespace как будто не распознаётся namespase “model”. В чём дело, как бороться?

А зачем что-то вообще переводить с Java на C++?

14.09.2014 15:40:56
Ermak

Ermak

МГУ им. М.В. Ломоносова

Что-то у меня не сходится game.strike_power_base_factor = 0.75 game.strike_power_growth_factor = 0.01 game.max_effective_swing_ticks = 20 game.struck_puck_initial_speed_factor = 20.0

выходит, что сила удара при максимальном замахе 0.95 и макс. скорость 19. Так задумано? game.strike_power_growth_factor должен быть 0.0125

14.09.2014 18:31:01
shakhray97

shakhray97

Школа 179 МИОО

Хлебушки, вы поле увеличили!! УИИИИИ!!!! Прям чувствую горелый запах константеров!

14.09.2014 19:06:03
tjden

tjden

ПУ СургутАСУнефть

увеличили только по ширине?

14.09.2014 19:42:20
-Frost-

-Frost-

Точка

А до окончания песочницы 0 дней XD

14.09.2014 19:48:24
fippo

fippo

Яндекс

Да уж, без всяких анонсов и т. п. Пришлось срочно фиксить константы :) Кроме ширины ещё и центр сдвинут по высоте.

14.09.2014 19:48:58
SladeThe

SladeThe

Команда Russian AI Cup

ud1

ud1

Химки

На мой вопрос будет дан ответ, то конца бетатестирования?

Перешли на использование SecureRandom.

14.09.2014 21:45:31
SladeThe

SladeThe

Команда Russian AI Cup

ud1

ud1

Химки

Вопрос по методу getRandomSeed. Это число получается вызовом Random.getNextLong от рандома который используется локал ранером для обработки случайностей. Но зная это число, можно восстановить текущий сид рандома и предсказывать его будущие возвращаемые случайные числа, а соотвественно убрав полностью влияние случая в игре - декомпилировав и разобравшись в работе ранера можно точно знать, будет ли какое- действия успешным или нет, и управлять этим в свою пользу, что является колоссальным преимуществом перед остальными. Вот доказательство возможности предсказания рандома: …

Спасибо, что обратили внимание.

14.09.2014 21:47:09
ud1

ud1

Химки

SladeThe

SladeThe

Команда Russian AI Cup

Перешли на использование SecureRandom.

Очень интересно, тогда получается, что установка seed в проперти файле больше не работает? Ведь SecureRandom не использует никогда только сид передаваемый ему, а использует дополнительную энтропию взятую из других источников. Т.е. просидидированные одинаковым SecureRandom все равно выдают разные случайные числа. Это серьезная деградация, т.к. не позволяет локально понасоздавать боев, а потом интересные из них повторить/продебажить с заданием сида.

14.09.2014 22:19:18
akoptsov

akoptsov

Москва

Добрый вечер. Меня терзают смутные сомнения по поводу функции getPickUpPuckBaseChance - сейчас она возвращает 0.6, хотя в правилах указана базовая вероятность подбора 160%, то есть 1.6.

Пруфпик Пруфпик

Цитата из правил

Если шайба не контролируется другим хоккеистом и находится в состоянии покоя, то базовый шанс установить над ней контроль равен 160%. Это значение равномерно уменьшается с ростом скорости шайбы, достигая (но не останавливаясь на) 60% при 20.0 тиках −1 —скорости, придаваемой шайбе после удара по ней хоккеиста, находящегося в состоянии покоя

14.09.2014 23:02:33
DVS

DVS

здесь может быть Ваша компания! :)

ud1

ud1

Химки

Очень интересно, тогда получается, что установка seed в проперти файле больше не работает? Ведь SecureRandom не использует никогда только сид передаваемый ему, а использует дополнительную энтропию взятую из других источников. Т.е. просидидированные одинаковым SecureRandom все равно выдают разные случайные числа. Это серьезная деградация, т.к. не позволяет локально понасоздавать боев, а потом интересные из них повторить/продебажить с заданием сида.

подозреваю что только на сервере? тогда локал ранер на перевес и отлаживайтесь сколько угодно, деградации тут точно нет, скорее уход от преференций джа хакерам :)

14.09.2014 23:18:10
SladeThe

SladeThe

Команда Russian AI Cup

ud1

ud1

Химки

Очень интересно, тогда получается, что установка seed в проперти файле больше не работает? Ведь SecureRandom не использует никогда только сид передаваемый ему, а использует дополнительную энтропию взятую из других источников. Т.е. просидидированные одинаковым SecureRandom все равно выдают разные случайные числа. Это серьезная деградация, т.к. не позволяет локально понасоздавать боев, а потом интересные из них повторить/продебажить с заданием сида.

Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену.

Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.

14.09.2014 23:20:52
ud1

ud1

Химки

DVS

DVS

здесь может быть Ваша компания! :)

подозреваю что только на сервере? тогда локал ранер на перевес и отлаживайтесь сколько угодно, деградации тут точно нет, скорее уход от преференций джа хакерам :)

Почему только на сервере? У меня под убунтой проверил, указываю одинаковый seed, игры разные. Под виндой не знаю как.

14.09.2014 23:21:55
ud1

ud1

Химки

SladeThe

SladeThe

Команда Russian AI Cup

Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену. Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.

Решение мне кажется только одно, это убрать передачу этого параметра вообще. Как я уже писал, он избыточен, пользователи могут себе константный сид забить и все. Чтоб не менять протокол, можете вместо этого параметра например по сети 0 передавать и все.

14.09.2014 23:23:49
ud1

ud1

Химки

ud1

ud1

Химки

Решение мне кажется только одно, это убрать передачу этого параметра вообще. Как я уже писал, он избыточен, пользователи могут себе константный сид забить и все. Чтоб не менять протокол, можете вместо этого параметра например по сети 0 передавать и все.

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

14.09.2014 23:27:21
DVS

DVS

здесь может быть Ваша компания! :)

ну раз отключили джавистам возможность предсказания удачности захвата шайбы то есть надежда.
habrahabr.ru/company/mailru/blog/236033/#comment_7946993
Возможно это даст преимущество Java-участникам, они смогут просто накопировать этот код в стратегию.
Возможно тогда отключите физ движок из джа стратегий?
Это позволит около 100 мегабайт сэкономить на каждой джа стратегии.
http://habrahabr.ru/company/mailru/blog/236033/#comment_7946993

14.09.2014 23:38:28
ud1

ud1

Химки

DVS

DVS

здесь может быть Ваша компания! :)

ну раз отключили джавистам возможность предсказания удачности захвата шайбы то есть надежда. habrahabr.ru/company/mailru/blog/236033/#comment_7946993 Возможно это даст преимущество Java-участникам, они смогут просто накопировать этот код в стратегию. Возможно тогда отключите физ движок из джа стратегий? …

Непонятно, что так исключать? Что за 100Мб?

14.09.2014 23:46:27
DVS

DVS

здесь может быть Ваша компания! :)

ud1

ud1

Химки

Почему только на сервере? У меня под убунтой проверил, указываю одинаковый seed, игры разные. Под виндой не знаю как.

я бы именно так и сделал :) разве не только на сервере? :(

14.09.2014 23:46:48
ud1

ud1

Химки

DVS

DVS

здесь может быть Ваша компания! :)

я бы именно так и сделал :) разве не только на сервере? :(

Я тебя вообще не понимаю. Что только на сервере? Что ты бы так и сделал? Говори внятнее.

14.09.2014 23:49:43
DVS

DVS

здесь может быть Ваша компания! :)

ud1

ud1

Химки

Непонятно, что так исключать? Что за 100Мб?

russianaicup.ru/game/view/15248
первая стратегия на Джа вторая на C#, кликните на значок стратегии и увидите расход памяти. Стратегии одинаковые
они счас показывают C++ но это глючок..

14.09.2014 23:50:56
ud1

ud1

Химки

DVS

DVS

здесь может быть Ваша компания! :)

russianaicup.ru/game/view/15248 первая стратегия на Джа вторая на C#, кликните на значок стратегии и увидите расход памяти. Стратегии одинаковые они счас показывают C++ но это глючок..

Я бы не ориентировался для нажы на эти показатели. В жаве подход работы с памятью не такой, как в С++ (не знаю как там в C#), нормальным является то, что она сразу выделает большой кусок памяти от системы, а потом занимается выделениями для объектов уже внутри этого куска. Короче может у жавы там параметр Xms стоит равным 100 Мб.

14.09.2014 23:56:31
dmitriy.m

dmitriy.m

Ижевск

SladeThe

SladeThe

Команда Russian AI Cup

Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену. Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.

У меня на Oracle JDK под Windows стабильно получаются разные результаты!!

15.09.2014 0:04:45
ud1

ud1

Химки

ud1

ud1

Химки

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

На самом деле можно даже метод не удалять, пусть просто тупо возвращает всегда 0, в правилах об этом напишите.

15.09.2014 0:06:41
thevlad

thevlad

Пенза

SladeThe

SladeThe

Команда Russian AI Cup

Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену. Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.

Основная фишка secureRandom, что видя последовательность чисел из прошлого, нельзя предсказать остальные в будующем, для обычных конгруэнтных линейных генераторов, даже это свойство не выполняется. А по факту надо смотреть как сидится secureRandom, внутри-то он все равно детерминированный.

15.09.2014 0:11:26
m00t

m00t

Freelance

Можно делать 2 seed: для стратегии и для мира. Seed для стратегии передается в стратегию как и раньше (чтобы можно было юзать его для своего алгоритма, если он нуждается в рандоме), seed для мира не передается в стратегию, но доступен в загружаемых данных для repeater после того, как игра закончится. В LocalRunner есть сделать возможность устанавливать оба seed, и в result.txt тоже писать оба.

15.09.2014 10:27:38
Flekon

Flekon

Москва

Добавьте пожалуйста в текст документации описание изменений по сравнению с версией 1.0. Переходить на новую версию, сравнивая по буквам весь документ очень проблемотично.

16.09.2014 10:16:19
MagAlex

MagAlex

Нижний Новгород

Flekon

Flekon

Москва

Добавьте пожалуйста в текст документации описание изменений по сравнению с версией 1.0. Переходить на новую версию, сравнивая по буквам весь документ очень проблемотично.

Все изменения можно посмотреть на GitHub.

16.09.2014 10:50:19
santa324

santa324

Москва

Нет ли на поле невидимых объектов? При ударе о стену около ворот шайба отскакивает очень странно (хотя угол ворот не задевает , “чисто” в стену удар) - как будто там есть что-то еще невидимое.

16.09.2014 16:13:24
CyberWo1f

CyberWo1f

Тюмень

santa324

santa324

Москва

Нет ли на поле невидимых объектов? При ударе о стену около ворот шайба отскакивает очень странно (хотя угол ворот не задевает , “чисто” в стену удар) - как будто там есть что-то еще невидимое.

Скорее всего её отталкивает вратарь =) уже где-то говорили, что у него масса бесконечная, и шайбу он выталкивает бывает из ворот, если плохо ударишь

16.09.2014 17:03:53
SladeThe

SladeThe

Команда Russian AI Cup

santa324

santa324

Москва

Нет ли на поле невидимых объектов? При ударе о стену около ворот шайба отскакивает очень странно (хотя угол ворот не задевает , “чисто” в стену удар) - как будто там есть что-то еще невидимое.

Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.

16.09.2014 17:25:16
dantistus

dantistus

Freelance Web & Graphic Designer

SladeThe

SladeThe

Команда Russian AI Cup

Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.

o_O

16.09.2014 17:32:50
imbeat

imbeat

МИЭТ

dantistus

dantistus

Freelance Web & Graphic Designer

o_O

Да, вот сюрприз то!

16.09.2014 18:12:25
cheeser

cheeser

Glowbyte

SladeThe

SladeThe

Команда Russian AI Cup

Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.

Вот это поворот Оо

16.09.2014 18:20:24
santa324

santa324

Москва

SladeThe

SladeThe

Команда Russian AI Cup

Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.

Да уж, уже больше недели бъюсь над точным предсказание траектории шайбы, даже некогда черновую стратегию написать для участия :)

16.09.2014 18:54:49
SladeThe

SladeThe

Команда Russian AI Cup

santa324

santa324

Москва

Да уж, уже больше недели бъюсь над точным предсказание траектории шайбы, даже некогда черновую стратегию написать для участия :)

С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10.

Вероятно, ваш подход не самый оптимальный :)

Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.

16.09.2014 21:45:53
DVS

DVS

здесь может быть Ваша компания! :)

SladeThe

SladeThe

Команда Russian AI Cup

С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10. Вероятно, ваш подход не самый оптимальный :) Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.

при управлении темже ЧПУ при выточке точных деталей есть блок физики, и блок управления.
этими блоками занимаются разные люди, а блок физики там очень навороченный, учитываются даже колебания обрабатываемого тела, чтобы делать очень точные и быстрые манипуляции
Здесь же приходится работать сразу за две команды, причем вторая команда либо физики либо хакеры.

16.09.2014 22:16:49
DVS

DVS

здесь может быть Ваша компания! :)

SladeThe

SladeThe

Команда Russian AI Cup

Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.

в предыдущей версии хокея шайба вообще скользила вдоль борта и не отскакивала :)

16.09.2014 22:18:20
DVS

DVS

здесь может быть Ваша компания! :)

santa324

santa324

Москва

Да уж, уже больше недели бъюсь над точным предсказание траектории шайбы, даже некогда черновую стратегию написать для участия :)

Физик из вас значит не очень.. может Джава хакер лучше будет? ;)

16.09.2014 22:19:07
DVS

DVS

здесь может быть Ваша компания! :)

SladeThe

SladeThe

Команда Russian AI Cup

С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10. Вероятно, ваш подход не самый оптимальный :) Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.

про учет колебаний ствола при стрельбе.
Кто больше знает о мире тот и выживет:
http://www.freepatent.ru/patents/2402738

16.09.2014 22:40:03
SladeThe

SladeThe

Команда Russian AI Cup

DVS

DVS

здесь может быть Ваша компания! :)

про учет колебаний ствола при стрельбе. Кто больше знает о мире тот и выживет: http://www.freepatent.ru/patents/2402738

Я имел в виду не то, что не нужно разбираться с физикой, а то, что нужно совмещать эти два процесса: разработку стратегии и изучение мира. Причём, продвижение в каждом из этих двух направлений ускоряет продвижение в другом направлении. По мере понимания физики вы можете написать всё более хорошую стратегию, по мере написания стратегии вы всё глубже понимаете физику (даже если это понимание интуитивно и не выражено в формулах).

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

16.09.2014 23:04:46
santa324

santa324

Москва

DVS

DVS

здесь может быть Ваша компания! :)

Физик из вас значит не очень.. может Джава хакер лучше будет? ;)

Я какраз физик, может вы уже давно умеете с точностью до 5го знака после запятой предсказывать траекторию шайбы с учетом отскока от вратаря и штанг?

16.09.2014 23:12:05
DVS

DVS

здесь может быть Ваша компания! :)

SladeThe

SladeThe

Команда Russian AI Cup

Я имел в виду не то, что не нужно разбираться с физикой, а то, что нужно совмещать эти два процесса: разработку стратегии и изучение мира. Причём, продвижение в каждом из этих двух направлений ускоряет продвижение в другом направлении. По мере понимания физики вы можете написать всё более хорошую стратегию, по мере написания стратегии вы всё глубже понимаете физику (даже если это понимание интуитивно и не выражено в формулах). …

я про этоже и говорю. что нужно:
1. блок AI
2. блок формул и коэффициентов

1. очень интересно
2. подбирать занудно и не интересно, да и лазить по обсфуцированному коду то еще занятие.

Как сделать турнир еще интереснее? выкинуть блок два, упростив и расшарив формулы, раскрыв исходники локал раннера

Я вижу громадный труд команды в этом конкурсе, видимо чуть чуть терпения не хватило для своего физ движка в опен сорсе?
Если бы хватило то моя оценка турнира была бы отлично с плюсом.

Ссейчас всего лишь четыре…

16.09.2014 23:15:40
DVS

DVS

здесь может быть Ваша компания! :)

santa324

santa324

Москва

Я какраз физик, может вы уже давно умеете с точностью до 5го знака после запятой предсказывать траекторию шайбы с учетом отскока от вратаря и штанг?

а я примат :) и близок к передсказанию шайбы..

примат - с кафедры прикладной математики.

16.09.2014 23:18:19
santa324

santa324

Москва

DVS

DVS

здесь может быть Ваша компания! :)

а я примат :) и близок к передсказанию шайбы.. примат - с кафедры прикладной математики.

Близок - это не серьезно :) я уже 4 дня думаю что мне пару часов доделывать блок предсказаний осталось - а потом снова какие-то искажения вылезают. Ну разве можно на основе знаний физики предвидеть что если стенка не сплошная а состоит и из 2х последовательных кусочков(даже с одинаковыми характеристиками) - то отскакивать от места стыка будет совершенно иначе чем от ровного участка?

16.09.2014 23:26:34
DVS

DVS

здесь может быть Ваша компания! :)

santa324

santa324

Москва

Близок - это не серьезно :) я уже 4 дня думаю что мне пару часов доделывать блок предсказаний осталось - а потом снова какие-то искажения вылезают. Ну разве можно на основе знаний физики предвидеть что если стенка не сплошная а состоит и из 2х последовательных кусочков(даже с одинаковыми характеристиками) - то отскакивать от места стыка будет совершенно иначе чем от ровного участка?

ну тогда уже пора использовать и занять первое место…

16.09.2014 23:40:46
Ermak

Ermak

МГУ им. М.В. Ломоносова

круто было бы сделать возможность делать активной какую-то стратегию из предыдущих, без перезаливки

17.09.2014 4:43:36
SladeThe

SladeThe

Команда Russian AI Cup

santa324

santa324

Москва

Я какраз физик, может вы уже давно умеете с точностью до 5го знака после запятой предсказывать траекторию шайбы с учетом отскока от вратаря и штанг?

Все вычисления в движке выполняются во float. Так что там в некоторых значениях уже в 5-ом знаке могут быть погрешности :)

17.09.2014 11:38:00
nop

nop

БГУ

Это очень грустно, что за время, прошедшее после танков вы не собрались написать свой физический движок. Тут ведь нет ничего на самом деле сложного. Есть только круги и axis-aligned прямоугольники, причем прямоугольники статичны. Столкновения всегда между кругами либо между кругом и прямоугольником. Это вполне посильная задача, хотя, конечно, не день работы (а два :) ) Помня, сколько времени было потрачено на точное предсказание столкновений в танках, несмотря на то, что там все было проще, чем я кодил изначально(сугубо линейное замедление без учета направления гусениц). Не очень даже теперь хочется участвовать. Кстати, кто-то, в курсе, угловой момент здесь учитывается?

17.09.2014 19:28:08
nop

nop

БГУ

Ermak

Ermak

МГУ им. М.В. Ломоносова

круто было бы сделать возможность делать активной какую-то стратегию из предыдущих, без перезаливки

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

17.09.2014 19:31:08
nop

nop

БГУ

santa324

santa324

Москва

Близок - это не серьезно :) я уже 4 дня думаю что мне пару часов доделывать блок предсказаний осталось - а потом снова какие-то искажения вылезают. Ну разве можно на основе знаний физики предвидеть что если стенка не сплошная а состоит и из 2х последовательных кусочков(даже с одинаковыми характеристиками) - то отскакивать от места стыка будет совершенно иначе чем от ровного участка?

Возможно, в таком месте срабатывает код отскакивания от угла, который, например, убирает угловой момент(если он вообще используется)

17.09.2014 19:32:38
nop

nop

БГУ

SladeThe

SladeThe

Команда Russian AI Cup

С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10. Вероятно, ваш подход не самый оптимальный :) Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.

Каждому, кто учавствовал ранее ясно, что код, играющий сейчас, потом даже в сотню попасть не сможет. И танки еще два года назад уже вроде всем показали, что точная симуляция физики (за исключением редких маловажных ситуаций) есть необходимое, хоть и не достаточное условие для нахождения в начале первой сотни к концу соревнования.

17.09.2014 19:36:12
o.pikozh

Извиняюсь за глупый вопрос.

Я правильно понимаю, что Move.Turn – это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180 фактически будет означать не то, что угол поворота хокеиста увеличится на 1°, а, то что его угловая скорость увеличится на 1°/c?

Или нет?

17.09.2014 21:04:49
o.pikozh

Извиняюсь за глупый вопрос.

Я правильно понимаю, что Move.Turn – это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180 фактически будет означать не то, что угол поворота хокеиста увеличится на 1°, а, то что угловая скорость хокеиста увеличится на 1°/c?

Или нет?

17.09.2014 21:06:43
o.pikozh

Извиняюсь за глупый вопрос. Я правильно понимаю, что Move.Turn – это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180 фактически будет означать не то , что угол поворота хокеиста увеличится на 1°, а, то что угловая скорость хокеиста увеличится на 1°/c? Или нет?

Просто я к чему…

Если move.Turn:=Pi/180 фактически увеличивает угловую скорость хоккеиста, то это нужно корректно отразить в документации (потому что сейчас при чтении документации создаётся впечатление, что это увеличивает само значение угла, а не угловую скорость).

Если же move.Turn:=Pi/180 увеличивает само значение угла, а не угловую скорость, то это… Хм, это как-то вообще не вяжется с физикой, в частности с тем, что у хоккеистов вообще может быть угловая скорость, которая появляется после столкновений.

17.09.2014 21:17:55
ud1

ud1

Химки

Извиняюсь за глупый вопрос. Я правильно понимаю, что Move.Turn – это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180 фактически будет означать не то, что угол поворота хокеиста увеличится на 1°, а, то что его угловая скорость увеличится на 1°/c? Или нет?

Неверно, turn меняет именно угол, на угловую скорость никак не влияет. На угловую скорость вообще воздействовать нельзя, она сама по себе. Она может появиться только при столкновениях хоккеистов друг с другом. Поэтому угол меняется на угловую скорость плюс указанный turn.

17.09.2014 21:23:52
nop

nop

БГУ

ud1

ud1

Химки

Неверно, turn меняет именно угол, на угловую скорость никак не влияет. На угловую скорость вообще воздействовать нельзя, она сама по себе. Она может появиться только при столкновениях хоккеистов друг с другом. Поэтому угол меняется на угловую скорость плюс указанный turn.

А вы случайно не знаете, только ли друг с другом? Без участия стен? И потом лишь затухает? На результаты дальнейших столкновений влияет?

17.09.2014 21:36:43
dantistus

dantistus

Freelance Web & Graphic Designer

nop

nop

БГУ

Это очень грустно, что за время, прошедшее после танков вы не собрались написать свой физический движок. Тут ведь нет ничего на самом деле сложного. Есть только круги и axis-aligned прямоугольники, причем прямоугольники статичны. Столкновения всегда между кругами либо между кругом и прямоугольником. Это вполне посильная задача, хотя, конечно, не день работы (а два :) ) Помня, сколько времени было потрачено на точное предсказание столкновений в танках, несмотря на то, что там все было проще, чем я кодил изначально(сугубо линейное замедление без учета направления гусениц). Не очень даже теперь хочется участвовать. Кстати, кто-то, в курсе, угловой момент здесь учитывается?

Угловой момент появляется при столкновении. Поворот, управляемый игроком, на угловой момент не влияет и устанавливает точный угол поворота в пределах +-3 градусов.

17.09.2014 21:37:55
nop

nop

БГУ

dantistus

dantistus

Freelance Web & Graphic Designer

Угловой момент появляется при столкновении. Поворот, управляемый игроком, на угловой момент не влияет и устанавливает точный угол поворота в пределах +-3 градусов.

Я имел ввиду, учитывается ли при просчете результатов столкновения хоккеистов с стенами и друг с другом, шайбы со стенами. Всегда ли после появления медленно (линейно?) затухает, либо сбрасывается на ноль в определенных случаях. Что он есть, я уже знал, конечно.

17.09.2014 21:46:12
dantistus

dantistus

Freelance Web & Graphic Designer

nop

nop

БГУ

Я имел ввиду, учитывается ли при просчете результатов столкновения хоккеистов с стенами и друг с другом, шайбы со стенами. Всегда ли после появления медленно (линейно?) затухает, либо сбрасывается на ноль в определенных случаях. Что он есть, я уже знал, конечно.

Не знаю, я так глубоко не копал :(

17.09.2014 21:51:16
__kamil

__kamil

Каспийск

этот конкурс больше не об ИИ , а о том как построить симулятор данной программы

17.09.2014 22:16:33
bogomolov.yuriy

bogomolov.yuriy

ТУСУР

Доброе время суток! В правилах внезапно наткнулся на интересное предложение перед 1.1: “…приглашает физических лиц, достигших к моменту опубликования настоящего Объявления о конкурсе 18 лет, далее по тексту «Участник конкурса», к участию…”. То есть, если мне нет восемнадцати лет, я не могу участвовать? Хотя в настройках профиля наткнулся на “Указывая возраст 18 лет или больше, вы подтверждаете свое соответствие правилам соревнования и можете быть квалифицированы в Финал. Подарочная футболка будет отослана всем участникам Раунда 2 независимо от возраста.” Таким образом, участвовать я могу, но приз не получу даже в случае победы? Или я в Финал вообще не допускаюсь? P.S. Восемнадцать только в январе исполняется. Учусь на первом курсе.

18.09.2014 13:45:39
alevlaber

alevlaber

Костанай

bogomolov.yuriy

bogomolov.yuriy

ТУСУР

Доброе время суток! В правилах внезапно наткнулся на интересное предложение перед 1.1: “…приглашает физических лиц, достигших к моменту опубликования настоящего Объявления о конкурсе 18 лет, далее по тексту «Участник конкурса», к участию…”. То есть, если мне нет восемнадцати лет, я не могу участвовать? Хотя в настройках профиля наткнулся на “Указывая возраст 18 лет или больше, вы подтверждаете свое соответствие правилам соревнования и можете быть квалифицированы в Финал. Подарочная футболка будет отослана всем участникам Раунда 2 независимо от возраста.” Таким образом, участвовать я могу, но приз не получу даже в случае победы? Или я в Финал вообще не допускаюсь? P.S. Восемнадцать только в январе исполняется. Учусь на первом курсе.

Вы можете участвовать в любом возрасте. Футболку получите в любом возрасте. Но не можете участвовать в финале. Насколько я помню это связано с оформлением документов на выдачу призов.

Вот с прошлого года: http://2013.russianaicup.ru/post/31

И вот еще: http://2013.russianaicup.ru/post/31#comment-1907

18.09.2014 14:00:55
bogomolov.yuriy

bogomolov.yuriy

ТУСУР

alevlaber

alevlaber

Костанай

Вы можете участвовать в любом возрасте. Футболку получите в любом возрасте. Но не можете участвовать в финале. Насколько я помню это связано с оформлением документов на выдачу призов. Вот с прошлого года: http://2013.russianaicup.ru/post/31 И вот еще: http://2013.russianaicup.ru/post/31#comment-1907

А если я гражданин другого государства? Тогда ведь, по сути, для меня неприменимы законы РФ?

18.09.2014 14:19:24
alevlaber

alevlaber

Костанай

bogomolov.yuriy

bogomolov.yuriy

ТУСУР

А если я гражданин другого государства? Тогда ведь, по сути, для меня неприменимы законы РФ?

Инфраструктура конкурса расположена в РФ, все документы проводятся в РФ и по законам РФ.

18.09.2014 14:23:58
bogomolov.yuriy

bogomolov.yuriy

ТУСУР

alevlaber

alevlaber

Костанай

Инфраструктура конкурса расположена в РФ, все документы проводятся в РФ и по законам РФ.

Понятно и печально… Спасибо за разъяснение!

18.09.2014 14:30:07
alevlaber

alevlaber

Костанай

bogomolov.yuriy

bogomolov.yuriy

ТУСУР

Понятно и печально… Спасибо за разъяснение!

Не за что. А почему печально? Ведь участвовать можно не только ради призов, но и ради удовольствия (ну и ради футболки)). Я, например, даже не надеюсь в финал попасть, но за футболку побороться можно) Две уже есть, в этом году третью постараюсь выиграть)

18.09.2014 14:35:35
bogomolov.yuriy

bogomolov.yuriy

ТУСУР

alevlaber

alevlaber

Костанай

Не за что. А почему печально? Ведь участвовать можно не только ради призов, но и ради удовольствия (ну и ради футболки)). Я, например, даже не надеюсь в финал попасть, но за футболку побороться можно) Две уже есть, в этом году третью постараюсь выиграть)

Ради удовольствия - согласен. =) Но сам факт того, что ты теоретически можешь попасть в Финал, изрядно греет душу. =)

18.09.2014 14:43:04
Impuls

Impuls

Саратов

nop

nop

БГУ

Каждому, кто учавствовал ранее ясно, что код, играющий сейчас, потом даже в сотню попасть не сможет. И танки еще два года назад уже вроде всем показали, что точная симуляция физики (за исключением редких маловажных ситуаций) есть необходимое, хоть и не достаточное условие для нахождения в начале первой сотни к концу соревнования.

Пример танковой стратегии без точной физики - 22е место в финале (хотя и недосягаемо далеко от топ10) http://2012.russianaicup.ru/profile/Impuls/contest4

18.09.2014 17:37:11
santa324

santa324

Москва

А шайба то вращается … и ее вращение сказывается при столкновении с вратарем… Уважаемые организаторы, почините, пожалуйста, getAngularSpeed для шайбы

18.09.2014 23:47:12
serlis

serlis

Харьковский НУ им. Каразина

Объясните пожалуйста, в локал ранере всегда на троих 1-нападающий 2 -норм и третий защитник. В правилах по моему написано только про то что ситуация симметрична (на практике относительно вертикальной линии, а не центра поля) для игроков. Я правильно понял что игроки атакующий защитник и нападающий всегда зафиксированы по номерам: 1-нападающий 2 -норм и третий защитник (или так только в локал ранере?)

21.09.2014 20:04:04
muodov

Подскажите, как узнать, что начался овертайм (дополнительное время)?.. в API нет явного метода для этого, а на основании количества тиков сложно об этом судить. Может я что-то пропустил?

22.09.2014 16:58:09
dimoc

dimoc

Минск

Подскажите, как узнать, что начался овертайм (дополнительное время)?.. в API нет явного метода для этого, а на основании количества тиков сложно об этом судить. Может я что-то пропустил?

пропустил. Player.isJustMissedGoal, Player.isJustScoredGoal

22.09.2014 17:05:58
dimoc

dimoc

Минск

dimoc

dimoc

Минск

пропустил. Player.isJustMissedGoal, Player.isJustScoredGoal

я не так прочитал вопрос. чем тик не устраивает?

22.09.2014 17:07:13
Wato

Wato

Prognoz

Подскажите, как узнать, что начался овертайм (дополнительное время)?.. в API нет явного метода для этого, а на основании количества тиков сложно об этом судить. Может я что-то пропустил?

Есть константы game.getTickCount() или world.getTickCount(), вот и сравнивайте. Если состояние не Player.isJustMissedGoal и не Player.isJustScoredGoal, и world.getTick() больше чем константы сверху, то овертайм

22.09.2014 17:46:22
the-admax

the-admax

Дом, милый дом

Здравия желаю. Разрешено ли использовать потоки (std::thread | pthreads) и, соответственно, работать с ними?

23.09.2014 0:58:41
Wsl_F

Wsl_F

Киевский Национальный Университет имени Тараса Шевченко

А можно публиковать отличия версия правил 1.0 - 1.0.3, а то не очень охота все перечитывать((

23.09.2014 16:21:42
alevlaber

alevlaber

Костанай

Wsl_F

Wsl_F

Киевский Национальный Университет имени Тараса Шевченко

А можно публиковать отличия версия правил 1.0 - 1.0.3, а то не очень охота все перечитывать((

эх, молодежь)

https://github.com/Russian-AI-Cup-2014/Tutorial/commits/c49a43acdd6bf62d82109da2f22f628917fe84f4/Tutorial.tex

23.09.2014 17:39:59
Megabyte

Megabyte

ООО Сибтел-крипто

Есть такая идея на счет оценок за бой. Сейчас менять ничего ненужно, но было бы хорошо, иметь в следующем конкурсе простую и открытую систему оценок. В начале каждый получает 1200 очков, а в случае победы игрок забирает у проигравшего ровно одну пятую от разницы в их текущих очках, но минимум 1 очко. В случае ничьей одну десятую от разницы в счете отдаем тому, у кого текущийсчет ниже. Если играют трое или четверо, проводить эту операцию от каждого к кождому, в зависимости от их взаимоположения в таблице результатов боя.

Или придумать чего подобного.

23.09.2014 19:43:14
dethariel

dethariel

Санкт-Петербург

Megabyte

Megabyte

ООО Сибтел-крипто

Есть такая идея на счет оценок за бой. Сейчас менять ничего ненужно, но было бы хорошо, иметь в следующем конкурсе простую и открытую систему оценок. В начале каждый получает 1200 очков, а в случае победы игрок забирает у проигравшего ровно одну пятую от разницы в их текущих очках, но минимум 1 очко. В случае ничьей одну десятую от разницы в счете отдаем тому, у кого текущийсчет ниже. Если играют трое или четверо, проводить эту операцию от каждого к кождому, в зависимости от их взаимоположения в таблице результатов боя. …

А чем текущая система плоха?

23.09.2014 21:05:01
Wsl_F

Wsl_F

Киевский Национальный Университет имени Тараса Шевченко

alevlaber

alevlaber

Костанай

Wsl_F

Wsl_F

Киевский Национальный Университет имени Тараса Шевченко

Не совсем понятно, куда будет направлен вектор скорости шайбы после удара. В правилах написано:

“направление скорости шайбы становится равным направлению удара”

Что это значит? направление хоккеиста сделавшего удар или направление его скорости, или что-то другое?

24.09.2014 2:58:43
ThermIt

ThermIt

Piano.io

Wsl_F

Wsl_F

Киевский Национальный Университет имени Тараса Шевченко

Не совсем понятно, куда будет направлен вектор скорости шайбы после удара. В правилах написано: “направление скорости шайбы становится равным направлению удара” Что это значит? направление хоккеиста сделавшего удар или направление его скорости, или что-то другое?

Направление удара = направление хоккеиста плюс случайная величина с нормальным распределением со стандартным отклонением 2. Т.е. он может ударить хоть себе за спину, пусть и с малой вероятностью.

24.09.2014 8:55:51
alevlaber

alevlaber

Костанай

ThermIt

ThermIt

Piano.io

Направление удара = направление хоккеиста плюс случайная величина с нормальным распределением со стандартным отклонением 2. Т.е. он может ударить хоть себе за спину, пусть и с малой вероятностью.

Это как это он может ударить себе за спину?

24.09.2014 9:28:45
vitsum

vitsum

ТПУ

alevlaber

alevlaber

Костанай

Это как это он может ударить себе за спину?

я думал 2 градуса это максимальное отклонение о_О

24.09.2014 9:33:06
ThermIt

ThermIt

Piano.io

alevlaber

alevlaber

Костанай

Это как это он может ударить себе за спину?

Ну там, клюшкой за лёд зацепился. :-) Хотя, от реализации многое зависит. 2 градуса - стандартное отклонение нормального распределения. Максимума в нормальном распределении нет, может быть отклонение хоть в миллион градусов.

24.09.2014 10:35:16
alevlaber

alevlaber

Костанай

ThermIt

ThermIt

Piano.io

Ну там, клюшкой за лёд зацепился. :-) Хотя, от реализации многое зависит. 2 градуса - стандартное отклонение нормального распределения. Максимума в нормальном распределении нет, может быть отклонение хоть в миллион градусов.

IMHO, такое не надо вслух произносить (писать) на форуме, чтобы не вводить в заблуждение

24.09.2014 10:38:19
ThermIt

ThermIt

Piano.io

alevlaber

alevlaber

Костанай

IMHO, такое не надо вслух произносить (писать) на форуме, чтобы не вводить в заблуждение

Я не ввожу в заблуждение, я вношу смуту. Но, как хотите, могу и не продолжать. ;-)

24.09.2014 10:45:39
alevlaber

alevlaber

Костанай

ThermIt

ThermIt

Piano.io

Я не ввожу в заблуждение, я вношу смуту. Но, как хотите, могу и не продолжать. ;-)

Смутьян)

24.09.2014 10:50:33
denisx

denisx

Россия

DVS

DVS

здесь может быть Ваша компания! :)

я про этоже и говорю. что нужно: 1. блок AI 2. блок формул и коэффициентов 1. очень интересно 2. подбирать занудно и не интересно, да и лазить по обсфуцированному коду то еще занятие. Как сделать турнир еще интереснее? выкинуть блок два, упростив и расшарив формулы, раскрыв исходники локал раннера …

подбирать нудно? пусть это сделают за вас роботы ;)

24.09.2014 11:33:32
dethariel

dethariel

Санкт-Петербург

Я правильно понимаю, что после “встречи” с бортом угол шайбы становится равным (PI - PrevAngle), приведенный в границы (-PI, PI)?

24.09.2014 17:05:17
enot110

enot110

ITMO University

Хочется уточнить условие. Верно ли, что вероятность взятия под контроль шайбы или попадания по ней при ударе зависит именно от абсолютной скорости шайбы, а не от скорости шайбы относительно скорости хоккеиста?

25.09.2014 23:59:35
rgbd

rgbd

БГУ

dethariel

dethariel

Санкт-Петербург

Я правильно понимаю, что после “встречи” с бортом угол шайбы становится равным (PI - PrevAngle), приведенный в границы (-PI, PI)?

Нет. Посмотрите любую игру. Скорее всего сохраняет абсолютное значение только касательный вектор скорости, в то время как нормальный затухает.

26.09.2014 0:09:52
ctretyak

ctretyak

Брянск

enot110

enot110

ITMO University

Хочется уточнить условие. Верно ли, что вероятность взятия под контроль шайбы или попадания по ней при ударе зависит именно от абсолютной скорости шайбы, а не от скорости шайбы относительно скорости хоккеиста?

Вот и у меня складывается ощущение, что если под углом, то шайбу выбить сложнее, чем если бы я напрямую с ней встретился

26.09.2014 11:35:29
snike

snike

Wargaming

Печально смотреть на тока как заканчивается время квалификации и осознавать что ничего уже не поделать.

26.09.2014 23:47:11
SladeThe

SladeThe

Команда Russian AI Cup

snike

snike

Wargaming

Печально смотреть на тока как заканчивается время квалификации и осознавать что ничего уже не поделать.

У вас ещё есть шанс попасть по добору из Песочницы в Раунд 2. Конечно, для этого придётся постараться.

26.09.2014 23:50:40
snike

snike

Wargaming

SladeThe

SladeThe

Команда Russian AI Cup

У вас ещё есть шанс попасть по добору из Песочницы в Раунд 2. Конечно, для этого придётся постараться.

Цитата из правил: ТакжевРаунд 2 будет проведён добор 60 участников с наибольшим рейтингом в Песочнице (на момент начала Раунда 2) из числа тех, кто не прошёл по итогам Раунда 1.

ТакжевРаунд 2 будет проведён добор 60 участников с наибольшим рейтингом в Песочнице (на момент начала Раунда 2) из числа тех, кто не прошёл по итогам Раунда 1.

Что тогда означает «из числа тех, кто не прошёл по итогам Раунда 1.» я думал что из тех кто не прошел в первом раунде по балам выберут еще 60 по рейтинку . Рад что ошибался, спасибо.

26.09.2014 23:59:41
dethariel

dethariel

Санкт-Петербург

SladeThe

SladeThe

Команда Russian AI Cup

“Т.е. нельзя включать внешние компоненты dll?” Нет. “Есть ли ограничение на размер исходника?” Да, 1 МБ. “Что считается читерством?” То, что запрещено правилами и соглашением об участии. Например, совместное участие, испоьзование кода или его части других участников; использование команд типа sleep(); другие способы дестабилизации тестирующей системы.

Как так - 1 Мб? Т.е. просчитанный заранее большой кэш не всунуть? Или это ограничение распространяется только на “значимый” код, который нужно будет просмотреть в случае, когда есть подозрение на нарушение правил?

30.09.2014 14:57:38
Ermak

Ermak

МГУ им. М.В. Ломоносова

Очень хочется увидеть комментарий администрации по поводу этого матча и корректности гола, произошедшего в нем. http://russianaicup.ru/game/view/728118 Налицо баг. Надеюсь, случай единичный.

01.10.2014 1:01:57
tyamgin

tyamgin

Симферополь

Скажите плиз, если я хочу дать пас максимальной силы (move.PassPower = 1), то куда в эту формулу

15.0 ∗ PassPower + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker)

запихнуть PassPowerFactor?

15.0 ∗ PassPower ∗ PassPowerFactor + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) что-ли?

01.10.2014 18:58:24
GeneralHaos

GeneralHaos

ОАО "РЖД"

tyamgin

tyamgin

Симферополь

Скажите плиз, если я хочу дать пас максимальной силы (move.PassPower = 1), то куда в эту формулу 15.0 ∗ PassPower + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) запихнуть PassPowerFactor? 15.0 ∗ PassPower ∗ PassPowerFactor + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) что-ли?

PassPower - это он и есть

01.10.2014 19:29:34
tyamgin

tyamgin

Симферополь

GeneralHaos

GeneralHaos

ОАО "РЖД"

PassPower - это он и есть

а move.PassPower - это тогда что?

01.10.2014 19:48:52
GeneralHaos

GeneralHaos

ОАО "РЖД"

tyamgin

tyamgin

Симферополь

а move.PassPower - это тогда что?

Это и есть относительная сила паса. Т.е. в формуле про итоговую силу паса будет 15*move.PassPower+(скорость хоккеиста)*(поправка от углов)

01.10.2014 19:59:08
cheeser

cheeser

Glowbyte

tyamgin

tyamgin

Симферополь

Скажите плиз, если я хочу дать пас максимальной силы (move.PassPower = 1), то куда в эту формулу 15.0 ∗ PassPower + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) запихнуть PassPowerFactor? 15.0 ∗ PassPower ∗ PassPowerFactor + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) что-ли?

В этой формуле он уже учтён: 15 = 20 * PassPowerFactor 20 = StruckPuckInitialSpeedFactor

01.10.2014 19:59:20
cheeser

cheeser

Glowbyte

cheeser

cheeser

Glowbyte

В этой формуле он уже учтён: 15 = 20 * PassPowerFactor 20 = StruckPuckInitialSpeedFactor

Что-то энтеры съелись: 15 = 20 * PassPowerFactor, где 20 = StruckPuckInitialSpeedFactor

01.10.2014 20:01:03
tyamgin

tyamgin

Симферополь

cheeser

cheeser

Glowbyte

В этой формуле он уже учтён: 15 = 20 * PassPowerFactor 20 = StruckPuckInitialSpeedFactor

Спасибо. Я понял.

01.10.2014 20:05:15
Sanda

Sanda

JetBrains

Несоответствие в тексте правил: game.getKnockdownChanceFactor() - Среднее значение атрибутов сила и ловкость хоккеиста, совершающего удар, увеличивает шанс сбить с ног. В формулах при этом стоит max(Strength, Dexterity). Есть предположение, что формула верна, а в тексте опечатка, но хотелось бы уточнить.

03.10.2014 18:20:12
SladeThe

SladeThe

Команда Russian AI Cup

Sanda

Sanda

JetBrains

Несоответствие в тексте правил: game.getKnockdownChanceFactor() - Среднее значение атрибутов сила и ловкость хоккеиста, совершающего удар, увеличивает шанс сбить с ног. В формулах при этом стоит max (Strength, Dexterity). Есть предположение, что формула верна, а в тексте опечатка, но хотелось бы уточнить.

Формула верна, в тексте опечатка.

03.10.2014 20:09:15
Sanda

Sanda

JetBrains

Ваша стратегия «упала» в короткой проверочной игре 2x2. Процесс стратегии непредвиденно завершился на тике 433. Вывод runner’а в stdout: Time limit exceeded Program failed to terminate within 8.00 sec time consumed: 8.02 of 8.00 sec

Сколько тиков в тестовых играх? По формуле получается, что 200, если стоит ограничение в 8 секунд. 15 (мс на ход) * 200 (тиков) * 2 (игроков) + 2000 = 8000. Тогда откуда “тик 433”? Или в тестовых играх действуют другие временнЫе ограничения?

03.10.2014 22:00:09
tyamgin

tyamgin

Симферополь

Sanda

Sanda

JetBrains

Ваша стратегия «упала» в короткой проверочной игре 2x2. Процесс стратегии непредвиденно завершился на тике 433. Вывод runner’а в stdout: Time limit exceeded Program failed to terminate within 8.00 sec time consumed: 8.02 of 8.00 sec Сколько тиков в тестовых играх? По формуле получается, что 200, если стоит ограничение в 8 секунд. 15 (мс на ход) * 200 (тиков) * 2 (игроков) + 2000 = 8000. Тогда откуда “тик 433”? Или в тестовых играх действуют другие временнЫе ограничения?

Моя стратегия вообще верификацию не проходит XD

Я добавил костыль if(тестовая) return;

03.10.2014 22:03:12
Sanda

Sanda

JetBrains

tyamgin

tyamgin

Симферополь

Моя стратегия вообще верификацию не проходит XD Я добавил костыль if(тестовая) return;

Это у меня тоже валится на верификации. Про костыль уже подумал, сейчас добавлю, но хочется услышать мнение администрации (:

03.10.2014 22:11:48
SladeThe

SladeThe

Команда Russian AI Cup

Sanda

Sanda

JetBrains

Это у меня тоже валится на верификации. Про костыль уже подумал, сейчас добавлю, но хочется услышать мнение администрации (:

200 тиков основного времени + 200 тиков дополнительного времени + 300 тиков после гола = 700 тиков максимум может длиться верификационная игра

03.10.2014 22:13:14
Sanda

Sanda

JetBrains

SladeThe

SladeThe

Команда Russian AI Cup

200 тиков основного времени + 200 тиков дополнительного времени + 300 тиков после гола = 700 тиков максимум может длиться верификационная игра

Да? А Repeater выдаёт game.getOvertimeTickCount = 2000. Проверьте, пожалуйста.

03.10.2014 22:15:46
MagAlex

MagAlex

Нижний Новгород

Sanda

Sanda

JetBrains

Да? А Repeater выдаёт game.getOvertimeTickCount = 2000. Проверьте, пожалуйста.

Может у вас идёт обращение к несуществующему элементу массива, поэтому стратегия падает. При счёте 0-0 во время дополнительного времени вратари “исчезают”, т.е. массив хоккеистов укорачивается на 2 элемента.

03.10.2014 22:20:00
Sanda

Sanda

JetBrains

MagAlex

MagAlex

Нижний Новгород

Может у вас идёт обращение к несуществующему элементу массива, поэтому стратегия падает. При счёте 0-0 во время дополнительного времени вратари “исчезают”, т.е. массив хоккеистов укорачивается на 2 элемента.

“time consumed: 8.02 of 8.00 sec” как бы намекает, что вратари ни при чём. Ну и выше я уже написал, что в тестовой посылке repeater выдаёт длительность овертайма, равную 2000 вместо 200.

Костыль добавил, помогло.

03.10.2014 22:23:43
tyamgin

tyamgin

Симферополь

Вывод runner’а в stdout: Time limit exceeded Program failed to terminate within 8.00 sec time consumed: 8.02 of 8.00 sec.

Я до сих пор не могу понять то это вообще означает.

03.10.2014 22:24:22
Sanda

Sanda

JetBrains

tyamgin

tyamgin

Симферополь

Я до сих пор не могу понять то это вообще означает.

Это злой markdown съел переводы строк.

Вывод runner’а в stdout:

Time limit exceeded

Program failed to terminate within 8.00 sec

time consumed: 8.02 of 8.00 sec

03.10.2014 22:27:14
Wato

Wato

Prognoz

tyamgin

tyamgin

Симферополь

Я до сих пор не могу понять то это вообще означает.

А разве не то, что стратегия отожрала слишком много времени?

03.10.2014 22:27:35
tyamgin

tyamgin

Симферополь

Wato

Wato

Prognoz

А разве не то, что стратегия отожрала слишком много времени?

1) Отожрала 2 секунды за 1 тик?

2) Превысила суммарный лимит времени?

3) Превысила суммарный лимит процессорного времени?

Откуда число 8 ?

03.10.2014 22:38:05
Sanda

Sanda

JetBrains

tyamgin

tyamgin

Симферополь

1) Отожрала 2 секунды за 1 тик? 2) Превысила суммарный лимит времени? 3) Превысила суммарный лимит процессорного времени? Откуда число 8 ?

См. правила, страница 10, формула в самом низу. Длительность тестовой игры - 200 тиков.

03.10.2014 22:42:01
SladeThe

SladeThe

Команда Russian AI Cup

Sanda

Sanda

JetBrains

Да? А Repeater выдаёт game.getOvertimeTickCount = 2000. Проверьте, пожалуйста.

В это поле просто пишется константа. Мы поправим это. На самом деле overtime сейчас 200 тиков в верификационных играх.

03.10.2014 23:15:21
imwode

imwode

Красногорск

Блин, уже минут 20 висит стратегия в режиме “обрабатывается”. Будет смешно, если она обработается за минуту до начала раунда с каким-нить багом, роняющим стратегию вначале раунда. Пичалька.

03.10.2014 23:39:14
imwode

imwode

Красногорск

imwode

imwode

Красногорск

Блин, уже минут 20 висит стратегия в режиме “обрабатывается”. Будет смешно, если она обработается за минуту до начала раунда с каким-нить багом, роняющим стратегию вначале раунда. Пичалька.

За 3 минуты принялась. Ну чо, молюсь сижу…. Супер, 40 минут на прием стратегии….

03.10.2014 23:57:57
JustAMan

JustAMan

Нижний Новгород

У меня принялась за минуту… а отправил я версию за 3 минуты до начала раунда :) Надеюсь, новая хотя бы не хуже предыдущей :)

04.10.2014 0:11:47