Мы запустили единую систему регистрации для чемпионатов Mail.Ru Group. Авторизуйтесь, используя ваш e-mail от russianaicup.ru или зарегистрируйтесь на портале единой регистрации. После регистрации вы будете перенаправлены назад.
Пароли учетных записей сайта russianaicup.ru не были перенесены в единую систему регистрации. Если вы впервые используете единую систему регистрации, вам будет необходимо восстановить пароль.
Вы можете скачать подробные правила в формате PDF. В них изложен формат проведения турнира, дано описание игрового мира и технических характеристик объектов. Кроме того, там вы найдёте JavaDocs для всех стандартных классов, используемых в стратегиях.
Также правила опубликованы на GitHub. Как и на нашем сайте, там вы всегда сможете найти актуальную версию правил, а также отслеживать историю внесённых правок.
Санкт-Петербург
“Однако вы можете добавлять в стратегию свои файлы с кодом. Эти файлы должны находиться в том же каталоге, что и основной файл стратегии” Подкаталоги нельзя пихать чтоли ? Бардак же :( да и вообще ужас какой-то…
Киев
1.6 Территория проведения Конкурса Конкурс проводится на территории Российской Федерации
Участвовать могут только те, кто из России?
1.6 Территория проведения Конкурса Конкурс проводится на территории Российской Федерации Участвовать могут только те, кто из России?
Нет, участвуйте ). Если Вы будете в числе победителей, думаю, футболку-то на Украину вышлют.
Нет, участвуйте ). Если Вы будете в числе победителей, думаю, футболку-то на Украину вышлют.
В прошлом году футболку в РБ прислали без проблем.
Freelance
Я уже спрашивал на Хабре, спрошу и тут. В игре есть много физики (шайбы с бортиками, трение), уравнений которой нету в правилах. Кто-то достанет ее из LocalRunner, кто-то будет вычислять как-то, кто-то не сможет. Может быть опубликовать все эти уравнения, чтобы все были в равных условиях? Тогда нужно будет потратить меньше времени на подготовку и можно будет потратить больше на стратегию.
Екатеринбург
Хотелось бы узнать, можно ли использовать сторонние библиотеки? А то AForge.NET пригодилась бы. jalomic +1
DataArt
Такой вопрос… я конечно понимаю, что вряд ли организаторы пойдут на столь серьезный шаг, но вдруг.
Я думаю все кто хотел уже давно определили мертвую зону у вратаря, там собственно даже стараться не надо. С фиксированной логикой поведения вратаря, на глаз видно, что бить в ворота надо под 45 градусов к дальней штанги. Так может мы таки дать возможность рулить поведением вратаря? Что бы он не забивался в угол, а как то старался все таки защитить ворота.
Мое предложение заключается в следующем.
1) Дать возможность управлять позицией вратаря
2) Дать вратарю клюшку, которой он сможет перемещать возле себя вдоль плоскости ворот, убрать коллизию между вратарем и шайбой, но добавить колизию с его клюшкой
при этом скорость вратаря уменьшить, а скорость клюшки сделать побольше может появится хоть какой то смысл в пасах.
Можно, конечно считать, что в тех условиях, что есть имеет смысл защищать ворота, полевым игроком, но так как перехват шайбы вещь рандомная, то один фиг самой правильной стратегией, будет пулять по воротам из мертвой зоны, а там уж повезет не повезет, пофиг.
PS: А начал я бы с того, что даже, не добавляя клюшку, поведение вратаря можно улучшить.
Бишкек
Стратегии с частыми передачами шайбы между союзниками неэффективны изза низкой вероятности поймать эту шайбу.
Нет, участвуйте ). Если Вы будете в числе победителей, думаю, футболку-то на Украину вышлют.
Я сегодня общался насчет футболки, мне написали, что на Украину сейчас посылки не доходят :(
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
я правильно понимаю что граница хоккейного поля по ординатам ограничена между 170 и 723? Так нарисовано в документации
1.6 Территория проведения Конкурса Конкурс проводится на территории Российской Федерации Участвовать могут только те, кто из России?
Нет, имеется в виду, что инфраструктура для проведения находится в России. Конкурс открыт для всех.
ООО АИС Город
Из документации:
getHockeyistSpeedUpFactor В игре отсутствует специальное ограничение на максимальную скорость хоккеиста, однако все игровые объекты подвержены воздействию силы трения, которая уменьшает модуль их скорости каждый тик. Чем больше скорость, тем на большую величину она уменьшается.
Но
getHockeyistMaxSpeed Возвращает максимальную скорость перемещения полевого хоккеиста
Это противоречит друг другу, или я чего-то недопонял?
И есть ли какая-нибудь возможность рассчитать трение?
Казахстан
Уберите пожалуйста гим америки со старта матча? С какого перепугу он вообще там делает? У нас ведь russianaicup, там вставьте гимн России, будет приятней и лучше.
МГУ им. М.В. Ломоносова
для полноты картины хотелось бы еще увидеть формулу силы трения, которая замедляет все объекты и нужные коэффициенты в классе game
Мегафон
1. Какое ограничение на размер дирректории? У меня например в первом приближении получается необходимый размер больше 2Г (не оперативной памяти, а места на диске)
- Какое ограничение на размер дирректории? У меня например в первом приближении получается необходимый размер больше 2Г (не оперативной памяти, а места на диске) Почему нельзя отсылать готовые сборки нет и джавы? зачем их компилировать на сервере? это автоматически даст поддержку ВСЕМ языкам НЕТ и Джавы. …
Насчёт дирректории в два гига - вы же в курсе о временных ограничения работы вашей стратегии? Елси вы будетезагружать 2 гига кусками по 200 метров в память (бОльшими нельзя - ограничение памяти) вы по любому выпадете за ограничение времени по IO
- Какое ограничение на размер дирректории? У меня например в первом приближении получается необходимый размер больше 2Г (не оперативной памяти, а места на диске) Почему нельзя отсылать готовые сборки нет и джавы? зачем их компилировать на сервере? это автоматически даст поддержку ВСЕМ языкам НЕТ и Джавы. …
Больше 2Гб. Используя диск, вы скорее упрётесь в ограничение по времени, чем по размеру. Однако, мы вообще не рекомендуем использовать диск и не даём никаких гарантий относительно скорости чтения/записи. Диск могут использовать другие процессы и скорость работы вашей стратегии может сильно отличаться от игры к игре. Также следует помнить, что сохранённые в одной игре файлы не будут доступны в другой игре.
Компиляция на сервере является частью системы безопасности: таким образом нельзя подменить стандартные файлы пакета. Помимо этого, мы можем просматривать исходники попыток, в том числе, чтобы отслеживать читеров.
Нижний Новгород
А формулу для расчета скорости с учетом силы трения самим подбирать?)
А формулу для расчета скорости с учетом силы трения самим подбирать?)
В целом да. В качестве подсказки: мы используем движок Phys2D. Собственно поэтому мы не можем предоставить точные формулы. Однако исходники движка легко гуглятся, и при желании можете их почитать.
Больше 2Гб. Используя диск, вы скорее упрётесь в ограничение по времени, чем по размеру. Однако, мы вообще не рекомендуем использовать диск и не даём никаких гарантий относительно скорости чтения/записи. Диск могут использовать другие процессы и скорость работы вашей стратегии может сильно отличаться от игры к игре. Также следует помнить, что сохранённые в одной игре файлы не будут доступны в другой игре. ...
Т.е. нельзя включать внешние компоненты dll? Есть ли ограничение на размер исходника? Если размер будет велик и сложно написан, то его просмотр теряет смысл. Будут ли блокироваться такие программы? Что считается читерством?
Насчёт дирректории в два гига - вы же в курсе о временных ограничения работы вашей стратегии? Елси вы будетезагружать 2 гига кусками по 200 метров в память (бОльшими нельзя - ограничение памяти) вы по любому выпадете за ограничение времени по IO
Если это база данных, то читать ее целиком не нужно. Объем чтения будет десятки килобайт.
Т.е. нельзя включать внешние компоненты dll? Есть ли ограничение на размер исходника? Если размер будет велик и сложно написан, то его просмотр теряет смысл. Будут ли блокироваться такие программы? Что считается читерством?
“Т.е. нельзя включать внешние компоненты dll?” Нет.
“Есть ли ограничение на размер исходника?” Да, 1 МБ.
“Что считается читерством?” То, что запрещено правилами и соглашением об участии. Например, совместное участие, испоьзование кода или его части других участников; использование команд типа sleep(); другие способы дестабилизации тестирующей системы.
ООО "Мера НН"
Такой вопрос… я конечно понимаю, что вряд ли организаторы пойдут на столь серьезный шаг, но вдруг. Я думаю все кто хотел уже давно определили мертвую зону у вратаря, там собственно даже стараться не надо. С фиксированной логикой поведения вратаря, на глаз видно, что бить в ворота надо под 45 градусов к дальней штанги. Так может мы таки дать возможность рулить поведением вратаря? Что бы он не забивался в угол, а как то старался все таки защитить ворота. …
Вот да, вообще сильно удивился, узнав о невозможности управлять вратарем. Ну он же совершенно тупо двигается! Зачем вообще это ограничение наложено? Отдайте его нам, стратегии будут намного интереснее.
ITserw
Подскажите пожалуйста, как работает увеличение изменчивости рейтинга?
После нажатия галочки при игре http://russianaicup.ru/game/view/40371 обыграл соперника со счетом 4:1, и у нас обоих почему-то уменьшился рейтинг. Причем у меня аж на 266. В чем логика состоит?
В целом да. В качестве подсказки: мы используем движок Phys2D. Собственно поэтому мы не можем предоставить точные формулы. Однако исходники движка легко гуглятся, и при желании можете их почитать.
Мне кажется это стоит описать в правилах, а не в комментариях
ИП
В правилах написано: Тогда командам назначается дополнительное время. Если к этому моменту не было забито ни одного гола, то вратари обеих команд убираются из игрового мира. А в этом матче вратари остались: http://russianaicup.ru/game/view/42866 - правила изменились? На гитхабе ничего такого не обнаружил
ИП
Подскажите пожалуйста, как работает увеличение изменчивости рейтинга? После нажатия галочки при игре http://russianaicup.ru/game/view/40371 обыграл соперника со счетом 4:1, и у нас обоих почему-то уменьшился рейтинг. Причем у меня аж на 266. В чем логика состоит?
Логика в том, что много сыгранных ранее неудачных игр будут портить твою статистику, поэтому даже при крутой стратегии рейтинг будет расти медленно. С галочкой рейтинг сбрасывается, но зато расти будет быстрее. Выгодно эту галочку ставить отставающим, и невыгодно - ТОП-ам
В правилах написано: Тогда командам назначается дополнительное время. Если к этому моменту не было забито ни одного гола, то вратари обеих команд убираются из игрового мира. А в этом матче вратари остались: http://russianaicup.ru/game/view/42866 - правила изменились? На гитхабе ничего такого не обнаружил
Ну так в этой игре были забиты голы, а вратари убираются если счет 0-0
МФТИ
В правилах написано про установление контроля над шайбой: “Это значение РАВНОМЕРНО уменьшается с ростом скорости шайбы, достигая (но не останавливаясь на) 50% при 20.0 тиках -1”; а про удар по движущейся шайбе: “Это значение уменьшается с ростом скорости шайбы, достигая 75% при 20.0 тиках -1”. А вот при ударе вероятность тоже равномерно рассчитывается? Или закон сий нам не доступен?
Ну так в этой игре были забиты голы, а вратари убираются если счет 0-0
А ведь верно, извиняюсь за невнимательность…
Россия
Есть предложение Организаторам если это возможно, сделать в середине игры смену сторон(поменять расположение команд на противоположное), например на 3000 тиках (то есть сделать 2 тайма по 3000 тиков). P.s Данные поправки помогут найти ошибки в стратегиях которые сделаны в зависимости от расположения команды
Есть предложение Организаторам если это возможно, сделать в середине игры смену сторон(поменять расположение команд на противоположное), например на 3000 тиках (то есть сделать 2 тайма по 3000 тиков). P.s Данные поправки помогут найти ошибки в стратегиях которые сделаны в зависимости от расположения команды
А нефиг такие стратегии делать :D
Санкт-Петербург
Я правильно понимаю, что после удара по шайбе ее направление совпадает с направлением наносившего удар хоккеиста?
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
Я правильно понимаю, что после удара по шайбе ее направление совпадает с направлением наносившего удар хоккеиста?
Из документации - “направление скорости шайбы становится равным направлению удара”.
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
Подскажите пожалуйста насчет силы трения. Я прав что сила трения действующая на хоккеиста и на шайбу одинаковая, но замедляются по разному только за счет разных масс?
Санкт-Петербург
Из документации - “направление скорости шайбы становится равным направлению удара”.
Это я тоже видел, но не до конца понял. “Направление удара” это направление хоккеиста? Просто пасс получается гораздо более контролируемым
Команда Russian AI Cup
Подскажите пожалуйста насчет силы трения. Я прав что сила трения действующая на хоккеиста и на шайбу одинаковая, но замедляются по разному только за счет разных масс?
Не совсем. Дело в том, что есть два различных воздействия на скорость объекта: сила трения и сила сопротивления воздуха. Потери засчёт силы трения одинаковы для всех юнитов. А вот потери засчёт силы сопротивления воздуха у шайбы меньше засчёт лучших аэродинамических характеристик :) Условно говоря, ваше предположение верно при околонулевых скоростях, а с ростом скорости замедление хоккеиста растёт гораздо быстрее замедления шайбы.
Это я тоже видел, но не до конца понял. “Направление удара” это направление хоккеиста? Просто пасс получается гораздо более контролируемым
Направление удара — это направление хоккеиста +/- случайное отклонение.
Направление удара — это направление хоккеиста +/- случайное отклонение.
Из той же оперы вопрос: “В случае успеха модуль скорости шайбы мгновенно становится равным 20.0∗StrikePower+SpeedStriker∗cos(AngleStriker−SpeedAngleStriker), (2.3) где StrikePower—относительная сила удара, а SpeedStriker, AngleStriker и SpeedAngleStriker — соответственно модуль скорости, угол поворота и угол скорости хоккеиста, совершающего удар” здесь AngleStriker относительно чего берется?
Из той же оперы вопрос: “В случае успеха модуль скорости шайбы мгновенно становится равным 20.0∗StrikePower+SpeedStriker∗cos(AngleStriker−SpeedAngleStriker), (2.3) где StrikePower—относительная сила удара, а SpeedStriker, AngleStriker и SpeedAngleStriker — соответственно модуль скорости, угол поворота и угол скорости хоккеиста, совершающего удар” здесь AngleStriker относительно чего берется?
В тех же правилах написано. Это угол относительно оси абсцисс, положительный в сторону “по часовой стрелке”.
В тех же правилах написано. Это угол относительно оси абсцисс, положительный в сторону “по часовой стрелке”.
Не вижу, где. В любом случае, спасибо
Россия
Пишу на С++. Взял стратегию из примера, перевёл с Java на С++, у меня она компилируется. Пытаюсь выслать её - выскакивает ошибка компиляции: ‘model::HockeyistType’ is not a class or namespace как будто не распознаётся namespase “model”. В чём дело, как бороться?
Зачем введены эти 300 тиков после гола? Получается, что каждый гол уменьшает время игры на 300 тиков, и при разнице в 2 гола за <300 до конца матча уже не отыграться. Почему бы не сделать это время “вне игры” неигровым, без обновления времени матча. В настоящем хоккее используется только “чистое” время, в неигровых моментах хронометраж не обновляется.
Москва
Установите, пожалуйста, хоккеистам бесконечный момент инерции. А то получается, что помимо явно задаваемого угла поворота есть еще скрытая угловая скорость, которая набирается при ударах об других хоккеистов.
Установите, пожалуйста, хоккеистам бесконечный момент инерции. А то получается, что помимо явно задаваемого угла поворота есть еще скрытая угловая скорость, которая набирается при ударах об других хоккеистов.
Зачем? Это физика такая. Даже есть вроде бы функция угловой скорости хоккеистов.
ITserw
Зачем введены эти 300 тиков после гола? Получается, что каждый гол уменьшает время игры на 300 тиков, и при разнице в 2 гола за <300 до конца матча уже не отыграться. Почему бы не сделать это время “вне игры” неигровым, без обновления времени матча. В настоящем хоккее используется только “чистое” время, в неигровых моментах хронометраж не обновляется.
Полезное замечание. Плюсую, было бы лучше.
Зачем введены эти 300 тиков после гола?
В это время можно менять игроков. Позже пригодится.
В это время можно менять игроков. Позже пригодится.
Понятно, но что мешает останавливать отсчет игрового времени в этот период?
Понятно, но что мешает останавливать отсчет игрового времени в этот период?
Чтобы сменить игрока надо подъехать в левый (или правый, в зависимости от стороны) угол и сделать это за 300 тиков. То есть игра совсем не останавливается, просто в это время не считаются голы. Можно мешать уставшим хоккеистам оппонента, чтобы не получилось у них смениться. Своих уставших, опять же, надо по-быстрому подвести объезжая препятствия.
Разве что можно эти 300 тиков потом прибавлять к основным тикам, но как-то не вижу в этом смысла. В одной игре из ста они тебе помогут, в еще одной из ста ты из-за этого проиграешь.
А как ворота сбивать?
это просто. отколупить дощечку справа и прибить ее с другой стороны. дерзайте :)
Нижний Новгород
В п. 2.3 правил сказано, что базовый шанс установить контроль над шайбой составляет 160%, а базовый шанс ударить по шайбе равен 175%. Объясните пожалуйста, почему вероятность получилась больше 100%?
ХНУРЭ (бывш. ХИРЭ, ХТУРЭ)
В п. 2.3 правил сказано, что базовый шанс установить контроль над шайбой составляет 160%, а базовый шанс ударить по шайбе равен 175%. Объясните пожалуйста, почему вероятность получилась больше 100%?
скорее всего потому что в дальнейшем на него будут оказывать действие характеристики хоккеиста
Но ведь какие действия не совершать, вероятность наступления события всегда лежит в пределах от 0% до 100%.
В правилах указано, что шанс любого вероятностного события в игре лежит в интервале от 5% до 95%. 160%/175% — это базовое значение, одно из слагаемых в формуле.
Химки
Вопрос по методу getRandomSeed. Это число получается вызовом Random.getNextLong от рандома который используется локал ранером для обработки случайностей. Но зная это число, можно восстановить текущий сид рандома и предсказывать его будущие возвращаемые случайные числа, а соотвественно убрав полностью влияние случая в игре - декомпилировав и разобравшись в работе ранера можно точно знать, будет ли какое- действия успешным или нет, и управлять этим в свою пользу, что является колоссальным преимуществом перед остальными. Вот доказательство возможности предсказания рандома: http://ideone.com/lbCeca Вопрос, является ли это законным или даже тихо подразумевающейся возможностью в игре? Если нет, то может стоит вообще убрать этот метод, ведь пользователям он по большей части он и не нужен, при желании в своих рандомах они могут использовать свою константу в качестве сида.
В это время можно менять игроков. Позже пригодится.
Черт, а я задумал в это время заскриптовать танец, радостный или печальный в зависимости от того, в чьи ворота был забит гол :D
Пишу на С++. Взял стратегию из примера, перевёл с Java на С++, у меня она компилируется. Пытаюсь выслать её - выскакивает ошибка компиляции: ‘model::HockeyistType’ is not a class or namespace как будто не распознаётся namespase “model”. В чём дело, как бороться?
А зачем что-то вообще переводить с Java на C++?
МГУ им. М.В. Ломоносова
Что-то у меня не сходится 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
Школа 179 МИОО
Хлебушки, вы поле увеличили!! УИИИИИ!!!! Прям чувствую горелый запах константеров!
Яндекс
Да уж, без всяких анонсов и т. п. Пришлось срочно фиксить константы :) Кроме ширины ещё и центр сдвинут по высоте.
На мой вопрос будет дан ответ, то конца бетатестирования?
Перешли на использование SecureRandom.
Вопрос по методу getRandomSeed. Это число получается вызовом Random.getNextLong от рандома который используется локал ранером для обработки случайностей. Но зная это число, можно восстановить текущий сид рандома и предсказывать его будущие возвращаемые случайные числа, а соотвественно убрав полностью влияние случая в игре - декомпилировав и разобравшись в работе ранера можно точно знать, будет ли какое- действия успешным или нет, и управлять этим в свою пользу, что является колоссальным преимуществом перед остальными. Вот доказательство возможности предсказания рандома: …
Спасибо, что обратили внимание.
Перешли на использование SecureRandom.
Очень интересно, тогда получается, что установка seed в проперти файле больше не работает? Ведь SecureRandom не использует никогда только сид передаваемый ему, а использует дополнительную энтропию взятую из других источников. Т.е. просидидированные одинаковым SecureRandom все равно выдают разные случайные числа. Это серьезная деградация, т.к. не позволяет локально понасоздавать боев, а потом интересные из них повторить/продебажить с заданием сида.
Москва
Добрый вечер. Меня терзают смутные сомнения по поводу функции getPickUpPuckBaseChance - сейчас она возвращает 0.6, хотя в правилах указана базовая вероятность подбора 160%, то есть 1.6.
Если шайба не контролируется другим хоккеистом и находится в состоянии покоя, то базовый шанс установить над ней контроль равен 160%. Это значение равномерно уменьшается с ростом скорости шайбы, достигая (но не останавливаясь на) 60% при 20.0 тиках −1 —скорости, придаваемой шайбе после удара по ней хоккеиста, находящегося в состоянии покоя
Очень интересно, тогда получается, что установка seed в проперти файле больше не работает? Ведь SecureRandom не использует никогда только сид передаваемый ему, а использует дополнительную энтропию взятую из других источников. Т.е. просидидированные одинаковым SecureRandom все равно выдают разные случайные числа. Это серьезная деградация, т.к. не позволяет локально понасоздавать боев, а потом интересные из них повторить/продебажить с заданием сида.
подозреваю что только на сервере? тогда локал ранер на перевес и отлаживайтесь сколько угодно, деградации тут точно нет, скорее уход от преференций джа хакерам :)
Очень интересно, тогда получается, что установка seed в проперти файле больше не работает? Ведь SecureRandom не использует никогда только сид передаваемый ему, а использует дополнительную энтропию взятую из других источников. Т.е. просидидированные одинаковым SecureRandom все равно выдают разные случайные числа. Это серьезная деградация, т.к. не позволяет локально понасоздавать боев, а потом интересные из них повторить/продебажить с заданием сида.
Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену.
Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.
подозреваю что только на сервере? тогда локал ранер на перевес и отлаживайтесь сколько угодно, деградации тут точно нет, скорее уход от преференций джа хакерам :)
Почему только на сервере? У меня под убунтой проверил, указываю одинаковый seed, игры разные. Под виндой не знаю как.
Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену. Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.
Решение мне кажется только одно, это убрать передачу этого параметра вообще. Как я уже писал, он избыточен, пользователи могут себе константный сид забить и все. Чтоб не менять протокол, можете вместо этого параметра например по сети 0 передавать и все.
Решение мне кажется только одно, это убрать передачу этого параметра вообще. Как я уже писал, он избыточен, пользователи могут себе константный сид забить и все. Чтоб не менять протокол, можете вместо этого параметра например по сети 0 передавать и все.
Просто насколько понимаю, что убирание метода это серьезное изменение, оно может поломать компиляцию некоторых стратегий, поэтому желательно успеть это провести до окончания бетатестирования.
здесь может быть Ваша компания! :)
ну раз отключили джавистам возможность предсказания удачности захвата шайбы то есть надежда.
habrahabr.ru/company/mailru/blog/236033/#comment_7946993
Возможно это даст преимущество Java-участникам, они смогут просто накопировать этот код в стратегию.
Возможно тогда отключите физ движок из джа стратегий?
Это позволит около 100 мегабайт сэкономить на каждой джа стратегии.
http://habrahabr.ru/company/mailru/blog/236033/#comment_7946993
ну раз отключили джавистам возможность предсказания удачности захвата шайбы то есть надежда. habrahabr.ru/company/mailru/blog/236033/#comment_7946993 Возможно это даст преимущество Java-участникам, они смогут просто накопировать этот код в стратегию. Возможно тогда отключите физ движок из джа стратегий? …
Непонятно, что так исключать? Что за 100Мб?
Почему только на сервере? У меня под убунтой проверил, указываю одинаковый seed, игры разные. Под виндой не знаю как.
я бы именно так и сделал :) разве не только на сервере? :(
я бы именно так и сделал :) разве не только на сервере? :(
Я тебя вообще не понимаю. Что только на сервере? Что ты бы так и сделал? Говори внятнее.
Непонятно, что так исключать? Что за 100Мб?
russianaicup.ru/game/view/15248
первая стратегия на Джа вторая на C#, кликните на значок стратегии и увидите расход памяти. Стратегии одинаковые
они счас показывают C++ но это глючок..
russianaicup.ru/game/view/15248 первая стратегия на Джа вторая на C#, кликните на значок стратегии и увидите расход памяти. Стратегии одинаковые они счас показывают C++ но это глючок..
Я бы не ориентировался для нажы на эти показатели. В жаве подход работы с памятью не такой, как в С++ (не знаю как там в C#), нормальным является то, что она сразу выделает большой кусок памяти от системы, а потом занимается выделениями для объектов уже внутри этого куска. Короче может у жавы там параметр Xms стоит равным 100 Мб.
Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену. Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.
У меня на Oracle JDK под Windows стабильно получаются разные результаты!!
Просто насколько понимаю, что убирание метода это серьезное изменение, оно может поломать компиляцию некоторых стратегий, поэтому желательно успеть это провести до окончания бетатестирования.
На самом деле можно даже метод не удалять, пусть просто тупо возвращает всегда 0, в правилах об этом напишите.
Да, у этого решения есть минусы, но его можно использовать какое-то время, пока мы не выработаем замену. Несмотря на то, что по документации последовательность SecureRandom не является детерминированной, например, на Oracle JDK под Windows стабильно получаются одни и те же результаты.
Основная фишка secureRandom, что видя последовательность чисел из прошлого, нельзя предсказать остальные в будующем, для обычных конгруэнтных линейных генераторов, даже это свойство не выполняется. А по факту надо смотреть как сидится secureRandom, внутри-то он все равно детерминированный.
Freelance
Можно делать 2 seed: для стратегии и для мира. Seed для стратегии передается в стратегию как и раньше (чтобы можно было юзать его для своего алгоритма, если он нуждается в рандоме), seed для мира не передается в стратегию, но доступен в загружаемых данных для repeater после того, как игра закончится. В LocalRunner есть сделать возможность устанавливать оба seed, и в result.txt тоже писать оба.
Москва
Добавьте пожалуйста в текст документации описание изменений по сравнению с версией 1.0. Переходить на новую версию, сравнивая по буквам весь документ очень проблемотично.
Добавьте пожалуйста в текст документации описание изменений по сравнению с версией 1.0. Переходить на новую версию, сравнивая по буквам весь документ очень проблемотично.
Все изменения можно посмотреть на GitHub.
Москва
Нет ли на поле невидимых объектов? При ударе о стену около ворот шайба отскакивает очень странно (хотя угол ворот не задевает , “чисто” в стену удар) - как будто там есть что-то еще невидимое.
Нет ли на поле невидимых объектов? При ударе о стену около ворот шайба отскакивает очень странно (хотя угол ворот не задевает , “чисто” в стену удар) - как будто там есть что-то еще невидимое.
Скорее всего её отталкивает вратарь =) уже где-то говорили, что у него масса бесконечная, и шайбу он выталкивает бывает из ворот, если плохо ударишь
Нет ли на поле невидимых объектов? При ударе о стену около ворот шайба отскакивает очень странно (хотя угол ворот не задевает , “чисто” в стену удар) - как будто там есть что-то еще невидимое.
Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.
Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.
o_O
Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.
Вот это поворот Оо
Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.
Да уж, уже больше недели бъюсь над точным предсказание траектории шайбы, даже некогда черновую стратегию написать для участия :)
Да уж, уже больше недели бъюсь над точным предсказание траектории шайбы, даже некогда черновую стратегию написать для участия :)
С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10.
Вероятно, ваш подход не самый оптимальный :)
Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.
С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10. Вероятно, ваш подход не самый оптимальный :) Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.
при управлении темже ЧПУ при выточке точных деталей есть блок физики, и блок управления.
этими блоками занимаются разные люди, а блок физики там очень навороченный, учитываются даже колебания обрабатываемого тела, чтобы делать очень точные и быстрые манипуляции
Здесь же приходится работать сразу за две команды, причем вторая команда либо физики либо хакеры.
Там нет ничего невидимого. Просто, не у всех стенок одинаковые характеристики. При ударе о штангу или «сетку»ыскорость гасится больше, чем при ударе об обычную стенку площадки.
в предыдущей версии хокея шайба вообще скользила вдоль борта и не отскакивала :)
Да уж, уже больше недели бъюсь над точным предсказание траектории шайбы, даже некогда черновую стратегию написать для участия :)
Физик из вас значит не очень.. может Джава хакер лучше будет? ;)
С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10. Вероятно, ваш подход не самый оптимальный :) Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.
про учет колебаний ствола при стрельбе.
Кто больше знает о мире тот и выживет:
http://www.freepatent.ru/patents/2402738
про учет колебаний ствола при стрельбе. Кто больше знает о мире тот и выживет: http://www.freepatent.ru/patents/2402738
Я имел в виду не то, что не нужно разбираться с физикой, а то, что нужно совмещать эти два процесса: разработку стратегии и изучение мира. Причём, продвижение в каждом из этих двух направлений ускоряет продвижение в другом направлении. По мере понимания физики вы можете написать всё более хорошую стратегию, по мере написания стратегии вы всё глубже понимаете физику (даже если это понимание интуитивно и не выражено в формулах).
То же касается и вашего примера: незнание указанного принципа тем не менее не мешало успешно использовать автоматическое оружие в течение уже более сотни лет, и без этого опыта вряд ли бы появился этот патент.
Физик из вас значит не очень.. может Джава хакер лучше будет? ;)
Я какраз физик, может вы уже давно умеете с точностью до 5го знака после запятой предсказывать траекторию шайбы с учетом отскока от вратаря и штанг?
Я имел в виду не то, что не нужно разбираться с физикой, а то, что нужно совмещать эти два процесса: разработку стратегии и изучение мира. Причём, продвижение в каждом из этих двух направлений ускоряет продвижение в другом направлении. По мере понимания физики вы можете написать всё более хорошую стратегию, по мере написания стратегии вы всё глубже понимаете физику (даже если это понимание интуитивно и не выражено в формулах). …
я про этоже и говорю. что нужно:
1. блок AI
2. блок формул и коэффициентов
1. очень интересно
2. подбирать занудно и не интересно, да и лазить по обсфуцированному коду то еще занятие.
Как сделать турнир еще интереснее? выкинуть блок два, упростив и расшарив формулы, раскрыв исходники локал раннера
Я вижу громадный труд команды в этом конкурсе, видимо чуть чуть терпения не хватило для своего физ движка в опен сорсе?
Если бы хватило то моя оценка турнира была бы отлично с плюсом.
Ссейчас всего лишь четыре…
Я какраз физик, может вы уже давно умеете с точностью до 5го знака после запятой предсказывать траекторию шайбы с учетом отскока от вратаря и штанг?
а я примат :) и близок к передсказанию шайбы..
примат - с кафедры прикладной математики.
а я примат :) и близок к передсказанию шайбы.. примат - с кафедры прикладной математики.
Близок - это не серьезно :) я уже 4 дня думаю что мне пару часов доделывать блок предсказаний осталось - а потом снова какие-то искажения вылезают. Ну разве можно на основе знаний физики предвидеть что если стенка не сплошная а состоит и из 2х последовательных кусочков(даже с одинаковыми характеристиками) - то отскакивать от места стыка будет совершенно иначе чем от ровного участка?
Близок - это не серьезно :) я уже 4 дня думаю что мне пару часов доделывать блок предсказаний осталось - а потом снова какие-то искажения вылезают. Ну разве можно на основе знаний физики предвидеть что если стенка не сплошная а состоит и из 2х последовательных кусочков(даже с одинаковыми характеристиками) - то отскакивать от места стыка будет совершенно иначе чем от ровного участка?
ну тогда уже пора использовать и занять первое место…
МГУ им. М.В. Ломоносова
круто было бы сделать возможность делать активной какую-то стратегию из предыдущих, без перезаливки
Я какраз физик, может вы уже давно умеете с точностью до 5го знака после запятой предсказывать траекторию шайбы с учетом отскока от вратаря и штанг?
Все вычисления в движке выполняются во float. Так что там в некоторых значениях уже в 5-ом знаке могут быть погрешности :)
БГУ
Это очень грустно, что за время, прошедшее после танков вы не собрались написать свой физический движок. Тут ведь нет ничего на самом деле сложного. Есть только круги и axis-aligned прямоугольники, причем прямоугольники статичны. Столкновения всегда между кругами либо между кругом и прямоугольником. Это вполне посильная задача, хотя, конечно, не день работы (а два :) ) Помня, сколько времени было потрачено на точное предсказание столкновений в танках, несмотря на то, что там все было проще, чем я кодил изначально(сугубо линейное замедление без учета направления гусениц). Не очень даже теперь хочется участвовать. Кстати, кто-то, в курсе, угловой момент здесь учитывается?
круто было бы сделать возможность делать активной какую-то стратегию из предыдущих, без перезаливки
Да, по-моему это и раньше просили. Постоянно бывало, что новая играет против реальных соперников хуже старой, либо внезапно нашелся баг. Приходилось заливать копии, чтоб откатить.
Близок - это не серьезно :) я уже 4 дня думаю что мне пару часов доделывать блок предсказаний осталось - а потом снова какие-то искажения вылезают. Ну разве можно на основе знаний физики предвидеть что если стенка не сплошная а состоит и из 2х последовательных кусочков(даже с одинаковыми характеристиками) - то отскакивать от места стыка будет совершенно иначе чем от ровного участка?
Возможно, в таком месте срабатывает код отскакивания от угла, который, например, убирает угловой момент(если он вообще используется)
С другой стороны, некоторые участники не заморачивались с точным знанием физики, а писали свою стратегию, основываясь на эвристиках, и сейчас находятся в топ-10. Вероятно, ваш подход не самый оптимальный :) Представьте, что вы управляете системой в реальном мире. Вы никогда не узнаете 100% информации о нём, однако это не мешает делать что-то уже сейчас.
Каждому, кто учавствовал ранее ясно, что код, играющий сейчас, потом даже в сотню попасть не сможет. И танки еще два года назад уже вроде всем показали, что точная симуляция физики (за исключением редких маловажных ситуаций) есть необходимое, хоть и не достаточное условие для нахождения в начале первой сотни к концу соревнования.
Извиняюсь за глупый вопрос.
Я правильно понимаю, что Move.Turn
– это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180
фактически будет означать не то, что угол поворота хокеиста увеличится на 1°, а, то что его угловая скорость увеличится на 1°/c?
Или нет?
Извиняюсь за глупый вопрос.
Я правильно понимаю, что Move.Turn
– это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180
фактически будет означать не то, что угол поворота хокеиста увеличится на 1°, а, то что угловая скорость хокеиста увеличится на 1°/c?
Или нет?
Извиняюсь за глупый вопрос. Я правильно понимаю, что Move.Turn – это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180 фактически будет означать не то , что угол поворота хокеиста увеличится на 1°, а, то что угловая скорость хокеиста увеличится на 1°/c? Или нет?
Просто я к чему…
Если move.Turn:=Pi/180
фактически увеличивает угловую скорость хоккеиста, то это нужно корректно отразить в документации (потому что сейчас при чтении документации создаётся впечатление, что это увеличивает само значение угла, а не угловую скорость).
Если же move.Turn:=Pi/180
увеличивает само значение угла, а не угловую скорость, то это… Хм, это как-то вообще не вяжется с физикой, в частности с тем, что у хоккеистов вообще может быть угловая скорость, которая появляется после столкновений.
Извиняюсь за глупый вопрос. Я правильно понимаю, что Move.Turn – это что-то вроде углового ускорения. Т.е. move.Turn:=Pi/180 фактически будет означать не то, что угол поворота хокеиста увеличится на 1°, а, то что его угловая скорость увеличится на 1°/c? Или нет?
Неверно, turn меняет именно угол, на угловую скорость никак не влияет. На угловую скорость вообще воздействовать нельзя, она сама по себе. Она может появиться только при столкновениях хоккеистов друг с другом. Поэтому угол меняется на угловую скорость плюс указанный turn.
Неверно, turn меняет именно угол, на угловую скорость никак не влияет. На угловую скорость вообще воздействовать нельзя, она сама по себе. Она может появиться только при столкновениях хоккеистов друг с другом. Поэтому угол меняется на угловую скорость плюс указанный turn.
А вы случайно не знаете, только ли друг с другом? Без участия стен? И потом лишь затухает? На результаты дальнейших столкновений влияет?
Это очень грустно, что за время, прошедшее после танков вы не собрались написать свой физический движок. Тут ведь нет ничего на самом деле сложного. Есть только круги и axis-aligned прямоугольники, причем прямоугольники статичны. Столкновения всегда между кругами либо между кругом и прямоугольником. Это вполне посильная задача, хотя, конечно, не день работы (а два :) ) Помня, сколько времени было потрачено на точное предсказание столкновений в танках, несмотря на то, что там все было проще, чем я кодил изначально(сугубо линейное замедление без учета направления гусениц). Не очень даже теперь хочется участвовать. Кстати, кто-то, в курсе, угловой момент здесь учитывается?
Угловой момент появляется при столкновении. Поворот, управляемый игроком, на угловой момент не влияет и устанавливает точный угол поворота в пределах +-3 градусов.
Угловой момент появляется при столкновении. Поворот, управляемый игроком, на угловой момент не влияет и устанавливает точный угол поворота в пределах +-3 градусов.
Я имел ввиду, учитывается ли при просчете результатов столкновения хоккеистов с стенами и друг с другом, шайбы со стенами. Всегда ли после появления медленно (линейно?) затухает, либо сбрасывается на ноль в определенных случаях. Что он есть, я уже знал, конечно.
Я имел ввиду, учитывается ли при просчете результатов столкновения хоккеистов с стенами и друг с другом, шайбы со стенами. Всегда ли после появления медленно (линейно?) затухает, либо сбрасывается на ноль в определенных случаях. Что он есть, я уже знал, конечно.
Не знаю, я так глубоко не копал :(
Каспийск
этот конкурс больше не об ИИ , а о том как построить симулятор данной программы
ТУСУР
Доброе время суток! В правилах внезапно наткнулся на интересное предложение перед 1.1: “…приглашает физических лиц, достигших к моменту опубликования настоящего Объявления о конкурсе 18 лет, далее по тексту «Участник конкурса», к участию…”. То есть, если мне нет восемнадцати лет, я не могу участвовать? Хотя в настройках профиля наткнулся на “Указывая возраст 18 лет или больше, вы подтверждаете свое соответствие правилам соревнования и можете быть квалифицированы в Финал. Подарочная футболка будет отослана всем участникам Раунда 2 независимо от возраста.” Таким образом, участвовать я могу, но приз не получу даже в случае победы? Или я в Финал вообще не допускаюсь? P.S. Восемнадцать только в январе исполняется. Учусь на первом курсе.
Костанай
Доброе время суток! В правилах внезапно наткнулся на интересное предложение перед 1.1: “…приглашает физических лиц, достигших к моменту опубликования настоящего Объявления о конкурсе 18 лет, далее по тексту «Участник конкурса», к участию…”. То есть, если мне нет восемнадцати лет, я не могу участвовать? Хотя в настройках профиля наткнулся на “Указывая возраст 18 лет или больше, вы подтверждаете свое соответствие правилам соревнования и можете быть квалифицированы в Финал. Подарочная футболка будет отослана всем участникам Раунда 2 независимо от возраста.” Таким образом, участвовать я могу, но приз не получу даже в случае победы? Или я в Финал вообще не допускаюсь? P.S. Восемнадцать только в январе исполняется. Учусь на первом курсе.
Вы можете участвовать в любом возрасте. Футболку получите в любом возрасте. Но не можете участвовать в финале. Насколько я помню это связано с оформлением документов на выдачу призов.
Вот с прошлого года: http://2013.russianaicup.ru/post/31
ТУСУР
Вы можете участвовать в любом возрасте. Футболку получите в любом возрасте. Но не можете участвовать в финале. Насколько я помню это связано с оформлением документов на выдачу призов. Вот с прошлого года: http://2013.russianaicup.ru/post/31 И вот еще: http://2013.russianaicup.ru/post/31#comment-1907
А если я гражданин другого государства? Тогда ведь, по сути, для меня неприменимы законы РФ?
Костанай
А если я гражданин другого государства? Тогда ведь, по сути, для меня неприменимы законы РФ?
Инфраструктура конкурса расположена в РФ, все документы проводятся в РФ и по законам РФ.
ТУСУР
Инфраструктура конкурса расположена в РФ, все документы проводятся в РФ и по законам РФ.
Понятно и печально… Спасибо за разъяснение!
Костанай
Понятно и печально… Спасибо за разъяснение!
Не за что. А почему печально? Ведь участвовать можно не только ради призов, но и ради удовольствия (ну и ради футболки)). Я, например, даже не надеюсь в финал попасть, но за футболку побороться можно) Две уже есть, в этом году третью постараюсь выиграть)
ТУСУР
Не за что. А почему печально? Ведь участвовать можно не только ради призов, но и ради удовольствия (ну и ради футболки)). Я, например, даже не надеюсь в финал попасть, но за футболку побороться можно) Две уже есть, в этом году третью постараюсь выиграть)
Ради удовольствия - согласен. =) Но сам факт того, что ты теоретически можешь попасть в Финал, изрядно греет душу. =)
Каждому, кто учавствовал ранее ясно, что код, играющий сейчас, потом даже в сотню попасть не сможет. И танки еще два года назад уже вроде всем показали, что точная симуляция физики (за исключением редких маловажных ситуаций) есть необходимое, хоть и не достаточное условие для нахождения в начале первой сотни к концу соревнования.
Пример танковой стратегии без точной физики - 22е место в финале (хотя и недосягаемо далеко от топ10) http://2012.russianaicup.ru/profile/Impuls/contest4
Москва
А шайба то вращается … и ее вращение сказывается при столкновении с вратарем… Уважаемые организаторы, почините, пожалуйста, getAngularSpeed для шайбы
Харьковский НУ им. Каразина
Объясните пожалуйста, в локал ранере всегда на троих 1-нападающий 2 -норм и третий защитник. В правилах по моему написано только про то что ситуация симметрична (на практике относительно вертикальной линии, а не центра поля) для игроков. Я правильно понял что игроки атакующий защитник и нападающий всегда зафиксированы по номерам: 1-нападающий 2 -норм и третий защитник (или так только в локал ранере?)
Подскажите, как узнать, что начался овертайм (дополнительное время)?.. в API нет явного метода для этого, а на основании количества тиков сложно об этом судить. Может я что-то пропустил?
Подскажите, как узнать, что начался овертайм (дополнительное время)?.. в API нет явного метода для этого, а на основании количества тиков сложно об этом судить. Может я что-то пропустил?
пропустил. Player.isJustMissedGoal, Player.isJustScoredGoal
пропустил. Player.isJustMissedGoal, Player.isJustScoredGoal
я не так прочитал вопрос. чем тик не устраивает?
Подскажите, как узнать, что начался овертайм (дополнительное время)?.. в API нет явного метода для этого, а на основании количества тиков сложно об этом судить. Может я что-то пропустил?
Есть константы game.getTickCount() или world.getTickCount(), вот и сравнивайте. Если состояние не Player.isJustMissedGoal и не Player.isJustScoredGoal, и world.getTick() больше чем константы сверху, то овертайм
Дом, милый дом
Здравия желаю. Разрешено ли использовать потоки (std::thread | pthreads
) и, соответственно, работать с ними?
Киевский Национальный Университет имени Тараса Шевченко
А можно публиковать отличия версия правил 1.0 - 1.0.3, а то не очень охота все перечитывать((
А можно публиковать отличия версия правил 1.0 - 1.0.3, а то не очень охота все перечитывать((
эх, молодежь)
ООО Сибтел-крипто
Есть такая идея на счет оценок за бой. Сейчас менять ничего ненужно, но было бы хорошо, иметь в следующем конкурсе простую и открытую систему оценок. В начале каждый получает 1200 очков, а в случае победы игрок забирает у проигравшего ровно одну пятую от разницы в их текущих очках, но минимум 1 очко. В случае ничьей одну десятую от разницы в счете отдаем тому, у кого текущийсчет ниже. Если играют трое или четверо, проводить эту операцию от каждого к кождому, в зависимости от их взаимоположения в таблице результатов боя.
Или придумать чего подобного.
Есть такая идея на счет оценок за бой. Сейчас менять ничего ненужно, но было бы хорошо, иметь в следующем конкурсе простую и открытую систему оценок. В начале каждый получает 1200 очков, а в случае победы игрок забирает у проигравшего ровно одну пятую от разницы в их текущих очках, но минимум 1 очко. В случае ничьей одну десятую от разницы в счете отдаем тому, у кого текущийсчет ниже. Если играют трое или четверо, проводить эту операцию от каждого к кождому, в зависимости от их взаимоположения в таблице результатов боя. …
А чем текущая система плоха?
эх, молодежь) https://github.com/Russian-AI-Cup-2014/Tutorial/commits/c49a43acdd6bf62d82109da2f22f628917fe84f4/Tutorial.tex
спасибо
Киевский Национальный Университет имени Тараса Шевченко
Не совсем понятно, куда будет направлен вектор скорости шайбы после удара. В правилах написано:
“направление скорости шайбы становится равным направлению удара”
Что это значит? направление хоккеиста сделавшего удар или направление его скорости, или что-то другое?
Не совсем понятно, куда будет направлен вектор скорости шайбы после удара. В правилах написано: “направление скорости шайбы становится равным направлению удара” Что это значит? направление хоккеиста сделавшего удар или направление его скорости, или что-то другое?
Направление удара = направление хоккеиста плюс случайная величина с нормальным распределением со стандартным отклонением 2. Т.е. он может ударить хоть себе за спину, пусть и с малой вероятностью.
Направление удара = направление хоккеиста плюс случайная величина с нормальным распределением со стандартным отклонением 2. Т.е. он может ударить хоть себе за спину, пусть и с малой вероятностью.
Это как это он может ударить себе за спину?
Это как это он может ударить себе за спину?
я думал 2 градуса это максимальное отклонение о_О
Это как это он может ударить себе за спину?
Ну там, клюшкой за лёд зацепился. :-) Хотя, от реализации многое зависит. 2 градуса - стандартное отклонение нормального распределения. Максимума в нормальном распределении нет, может быть отклонение хоть в миллион градусов.
Ну там, клюшкой за лёд зацепился. :-) Хотя, от реализации многое зависит. 2 градуса - стандартное отклонение нормального распределения. Максимума в нормальном распределении нет, может быть отклонение хоть в миллион градусов.
IMHO, такое не надо вслух произносить (писать) на форуме, чтобы не вводить в заблуждение
IMHO, такое не надо вслух произносить (писать) на форуме, чтобы не вводить в заблуждение
Я не ввожу в заблуждение, я вношу смуту. Но, как хотите, могу и не продолжать. ;-)
Я не ввожу в заблуждение, я вношу смуту. Но, как хотите, могу и не продолжать. ;-)
Смутьян)
я про этоже и говорю. что нужно: 1. блок AI 2. блок формул и коэффициентов 1. очень интересно 2. подбирать занудно и не интересно, да и лазить по обсфуцированному коду то еще занятие. Как сделать турнир еще интереснее? выкинуть блок два, упростив и расшарив формулы, раскрыв исходники локал раннера …
подбирать нудно? пусть это сделают за вас роботы ;)
Санкт-Петербург
Я правильно понимаю, что после “встречи” с бортом угол шайбы становится равным (PI - PrevAngle), приведенный в границы (-PI, PI)?
ITMO University
Хочется уточнить условие. Верно ли, что вероятность взятия под контроль шайбы или попадания по ней при ударе зависит именно от абсолютной скорости шайбы, а не от скорости шайбы относительно скорости хоккеиста?
Я правильно понимаю, что после “встречи” с бортом угол шайбы становится равным (PI - PrevAngle), приведенный в границы (-PI, PI)?
Нет. Посмотрите любую игру. Скорее всего сохраняет абсолютное значение только касательный вектор скорости, в то время как нормальный затухает.
Хочется уточнить условие. Верно ли, что вероятность взятия под контроль шайбы или попадания по ней при ударе зависит именно от абсолютной скорости шайбы, а не от скорости шайбы относительно скорости хоккеиста?
Вот и у меня складывается ощущение, что если под углом, то шайбу выбить сложнее, чем если бы я напрямую с ней встретился
Wargaming
Печально смотреть на тока как заканчивается время квалификации и осознавать что ничего уже не поделать.
Печально смотреть на тока как заканчивается время квалификации и осознавать что ничего уже не поделать.
У вас ещё есть шанс попасть по добору из Песочницы в Раунд 2. Конечно, для этого придётся постараться.
У вас ещё есть шанс попасть по добору из Песочницы в Раунд 2. Конечно, для этого придётся постараться.
Цитата из правил: ТакжевРаунд 2 будет проведён добор 60 участников с наибольшим рейтингом в Песочнице (на момент начала Раунда 2) из числа тех, кто не прошёл по итогам Раунда 1.
ТакжевРаунд 2 будет проведён добор 60 участников с наибольшим рейтингом в Песочнице (на момент начала Раунда 2) из числа тех, кто не прошёл по итогам Раунда 1.
Что тогда означает «из числа тех, кто не прошёл по итогам Раунда 1.» я думал что из тех кто не прошел в первом раунде по балам выберут еще 60 по рейтинку . Рад что ошибался, спасибо.
“Т.е. нельзя включать внешние компоненты dll?” Нет. “Есть ли ограничение на размер исходника?” Да, 1 МБ. “Что считается читерством?” То, что запрещено правилами и соглашением об участии. Например, совместное участие, испоьзование кода или его части других участников; использование команд типа sleep(); другие способы дестабилизации тестирующей системы.
Как так - 1 Мб? Т.е. просчитанный заранее большой кэш не всунуть? Или это ограничение распространяется только на “значимый” код, который нужно будет просмотреть в случае, когда есть подозрение на нарушение правил?
МГУ им. М.В. Ломоносова
Очень хочется увидеть комментарий администрации по поводу этого матча и корректности гола, произошедшего в нем. http://russianaicup.ru/game/view/728118 Налицо баг. Надеюсь, случай единичный.
Симферополь
Скажите плиз, если я хочу дать пас максимальной силы (move.PassPower = 1), то куда в эту формулу
15.0 ∗ PassPower + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker)
запихнуть PassPowerFactor?
15.0 ∗ PassPower ∗ PassPowerFactor + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) что-ли?
ОАО "РЖД"
Скажите плиз, если я хочу дать пас максимальной силы (move.PassPower = 1), то куда в эту формулу 15.0 ∗ PassPower + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) запихнуть PassPowerFactor? 15.0 ∗ PassPower ∗ PassPowerFactor + SpeedStriker ∗ cos(AngleStriker + PassAngle − SpeedAngleStriker) что-ли?
PassPower - это он и есть
ОАО "РЖД"
а move.PassPower - это тогда что?
Это и есть относительная сила паса. Т.е. в формуле про итоговую силу паса будет 15*move.PassPower+(скорость хоккеиста)*(поправка от углов)
Скажите плиз, если я хочу дать пас максимальной силы (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
В этой формуле он уже учтён: 15 = 20 * PassPowerFactor 20 = StruckPuckInitialSpeedFactor
Что-то энтеры съелись: 15 = 20 * PassPowerFactor, где 20 = StruckPuckInitialSpeedFactor
В этой формуле он уже учтён: 15 = 20 * PassPowerFactor 20 = StruckPuckInitialSpeedFactor
Спасибо. Я понял.
JetBrains
Несоответствие в тексте правил: game.getKnockdownChanceFactor() - Среднее значение атрибутов сила и ловкость хоккеиста, совершающего удар, увеличивает шанс сбить с ног. В формулах при этом стоит max(Strength, Dexterity). Есть предположение, что формула верна, а в тексте опечатка, но хотелось бы уточнить.
Несоответствие в тексте правил: game.getKnockdownChanceFactor() - Среднее значение атрибутов сила и ловкость хоккеиста, совершающего удар, увеличивает шанс сбить с ног. В формулах при этом стоит max (Strength, Dexterity). Есть предположение, что формула верна, а в тексте опечатка, но хотелось бы уточнить.
Формула верна, в тексте опечатка.
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”? Или в тестовых играх действуют другие временнЫе ограничения?
Ваша стратегия «упала» в короткой проверочной игре 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;
Моя стратегия вообще верификацию не проходит XD Я добавил костыль if(тестовая) return;
Это у меня тоже валится на верификации. Про костыль уже подумал, сейчас добавлю, но хочется услышать мнение администрации (:
Это у меня тоже валится на верификации. Про костыль уже подумал, сейчас добавлю, но хочется услышать мнение администрации (:
200 тиков основного времени + 200 тиков дополнительного времени + 300 тиков после гола = 700 тиков максимум может длиться верификационная игра
200 тиков основного времени + 200 тиков дополнительного времени + 300 тиков после гола = 700 тиков максимум может длиться верификационная игра
Да? А Repeater выдаёт game.getOvertimeTickCount = 2000. Проверьте, пожалуйста.
Да? А Repeater выдаёт game.getOvertimeTickCount = 2000. Проверьте, пожалуйста.
Может у вас идёт обращение к несуществующему элементу массива, поэтому стратегия падает. При счёте 0-0 во время дополнительного времени вратари “исчезают”, т.е. массив хоккеистов укорачивается на 2 элемента.
Может у вас идёт обращение к несуществующему элементу массива, поэтому стратегия падает. При счёте 0-0 во время дополнительного времени вратари “исчезают”, т.е. массив хоккеистов укорачивается на 2 элемента.
“time consumed: 8.02 of 8.00 sec” как бы намекает, что вратари ни при чём. Ну и выше я уже написал, что в тестовой посылке repeater выдаёт длительность овертайма, равную 2000 вместо 200.
Костыль добавил, помогло.
Симферополь
Вывод runner’а в stdout: Time limit exceeded Program failed to terminate within 8.00 sec time consumed: 8.02 of 8.00 sec.
Я до сих пор не могу понять то это вообще означает.
Я до сих пор не могу понять то это вообще означает.
Это злой markdown съел переводы строк.
Вывод runner’а в stdout:
Time limit exceeded
Program failed to terminate within 8.00 sec
time consumed: 8.02 of 8.00 sec
Я до сих пор не могу понять то это вообще означает.
А разве не то, что стратегия отожрала слишком много времени?
А разве не то, что стратегия отожрала слишком много времени?
1) Отожрала 2 секунды за 1 тик?
2) Превысила суммарный лимит времени?
3) Превысила суммарный лимит процессорного времени?
Откуда число 8 ?
1) Отожрала 2 секунды за 1 тик? 2) Превысила суммарный лимит времени? 3) Превысила суммарный лимит процессорного времени? Откуда число 8 ?
См. правила, страница 10, формула в самом низу. Длительность тестовой игры - 200 тиков.
Да? А Repeater выдаёт game.getOvertimeTickCount = 2000. Проверьте, пожалуйста.
В это поле просто пишется константа. Мы поправим это. На самом деле overtime сейчас 200 тиков в верификационных играх.
Красногорск
Блин, уже минут 20 висит стратегия в режиме “обрабатывается”. Будет смешно, если она обработается за минуту до начала раунда с каким-нить багом, роняющим стратегию вначале раунда. Пичалька.
Блин, уже минут 20 висит стратегия в режиме “обрабатывается”. Будет смешно, если она обработается за минуту до начала раунда с каким-нить багом, роняющим стратегию вначале раунда. Пичалька.
За 3 минуты принялась. Ну чо, молюсь сижу…. Супер, 40 минут на прием стратегии….
Нижний Новгород
У меня принялась за минуту… а отправил я версию за 3 минуты до начала раунда :) Надеюсь, новая хотя бы не хуже предыдущей :)