Спортивное программирование
Блог компании Mail.Ru Group
Комментарии 30
+2
А уравнения физики игрового мира не планируете добавлять в правила? Все-равно большинству придется их доставать как-то самостоятельно, либо из LocalRunner, либо измерениями. Это сэкономило бы кучу потраченного не на разработку стратегии времени.
+1
Скорее всего не получится. Нами используется проект code.google.com/p/phys2d/, который в некотором роде базируется на box2d и распространяется по New BSD License. Там весь код усеян хитрыми формулами, которые вытащить оттуда никак не получится. Кроме того, там есть определенные баги и/или недостатки физики, которые мы закрывали внешними заплатками. В стиле «если происходит такое-то явление, то давайте уменьшим на 30% такое вот перемещение». Такие заплатки не дают возможности просто сослаться на код phys2d. Вероятно, можно просто сослаться на phys2d, но это не поможет участникам — код сложен, запутан, перенести какие-то формулы в свою стратегию крайне сложно. Возможно это даст преимущество Java-участникам, они смогут просто накопировать этот код в стратегию.
0
А в каких браузерах просмотр игр поддерживается? Safari 7.0.3 жму «Смотреть» — ничего не происходит. После этого даже курсор уже не меняется при наведении на кнопку
0
Я в прошлом году жаловался, что не люблю войнушки. Техподдержка спросила, что бы я предложил. Я предложил хоккей. Видимо, прислушались :) Что ж, грех теперь не поучаствовать.
+1
Да, вообще полезных библиотек много. Разрешив использовать numpy, тут же придется разрешать scicy, а потом пользователи других языков будут просить каждый свою библиотеку — чем они хуже? В итоге получится много проблем с их настройкой и поддержкой. В настоящее время мы используем формальный критерий — библиотека есть в стандартной поставке языка, мы ее поддерживаем.
0
По такой логике можно было и языки другие не добавлять, оставить одну джаву и все. А то, разрешив питон, тут же придется и кобол еще разрешить.

Питон без нумпая становится просто тыквой уже ко второму раунду. Невозможно со сложной стратегией уложиться в лимиты по времени. Лучше тогда уберите питон совсем, чтобы народ не смущать.
0
Ну значит в этот раз можно было обойтись без алгоритмов с высокой вычислительной сложностью. В прошлые разы так не было. Что я еще могу сказать? )
0
Только хардкор. Хотя мне в прошлый раз numpy особо не понадобился.
Тут больше логики чем чего то ещё. :)
0
Прям в самое больное… поднимался до 240 но закончил где то 500.
Я поздно начал писать и наступил на все возможные грабли, но в итоге я доволен, так как повысил свой скил.
Даже была идея написать статью: «Как не надо писать для чемпионата...».
А вообще в прошлый раз разонравилось наличие брудфорсеров, теперь вроде с этим более жёстко.
0
Подавляющее большинство алгоритмов AI основаны на брутфорсе так или иначе. Чистые эвристики типа «если это, значит делать так» редко хорошо играют
0
Я успел внедрить где то 40 эвристик, не самых простых но это был не брутфорс.

Увы вы правы. Но мне не интересно писать «брутфорсные» алгоритмы, мне хочется написать подобие меня. Наверное глупо, но так лично мне куда интереснее.
0
Брутфорс тоже брутфорсу рознь. Многие алгоритмы, основанные на брутфорсе, тоже имеют внутри себя очень много domain-specific (специфичных для игры) эвристик, позволяющих раньше узнавать более похожие на правильные ходы или отбрасывать точно плохие, для того, чтобы сделать брутфорс на бОльшую глубину/ширину. Вот это, по-моему, интересно.
0
Спасибо, что заметили — забыли не упомянуть об этом. В этом году Ruby поддерживается
0
Такое ощущение, что GDK для Ruby сделали просто «чтобы было», например не согласованы геттеры, где-то просто .x, где-то get_x и т.д.

Более того, я так понимаю, что ruby-код гоняется под JRuby? Почему?
0
Может тут кто знает: как такое возможно, что стратегия работает на Local Runner, а при отправке вылазит ошибка верификации:
Ваша стратегия «упала» в коротком проверочном бою 2x2.
Процесс стратегии непредвиденно завершился на тике 201.
Вывод runner'а в stdout:
Program successfully terminated
exit code: 239
time consumed: 0.03 sec
time passed: 0.69 sec
peak memory: 2236416 bytes
Вывод стратегии в stdout:
Exception occured: type=EAccessViolation, message=«Access violation».

Причём всегда время на 201 тике. В чём может быть проблема?
Вообще, было бы неплохо, если бы мы имели утилиту, с помощью которой они тестируют стратегии (типа Local Runner). И им работы меньше, и нам легче разобраться. А Repeater у меня не получилось запустить :(
0
Короткие проверочные бои длятся 200 тиков, так что проблема где-то в самом конце.
0
Интересно, что тут тогда делает 201й тик? И нет формы обратной связи — как сообщить админам о баге?
+1
На форуме используется тот же аккаунт, что и на основном сайте (в чемпионате). Соответственно форум доступен только участником.
Зарегистрируйтесь на russianaicup.ru и сможете писать в форум.
0
Ничего кроме «странно» сказать не могу. Обращайтесь к разработчикам. В прошлом году я успешно писал письма (мне отвечали) на почту support гав russianaicup.ru.
0
Проблема решена: наверное, при тестировании, проверялась возможность управления 3+ игроками, а не только тремя, как в песочнице и первом раунде.
Только полноправные пользователи могут оставлять комментарии. , пожалуйста.