Как стать автором
Обновить

Комментарии 29

Позвольте спросить, а что вы этим хотите сказать?
У меня немного другое — перевод официального учебника. Статью я написал немного до Старт в Google AI Challenge на Java, просто она была в песочнице.

В общем в чём претензия?
В изобилии? Зато каждый найдёт то, что ему интересно.
В том что «повторяю»? Тогда извините, но вы промазали.
Его понять можно. Уже целых 3 вводных разного качества имеется.

Да и если человек не сможет понять что от него хотят в туториале — продолжать смысла немного.

PS Сам тоже участвую :p
Его понять можно, но и другим тоже много чего хочется…
И среди комментов к каждому туториалу — «лучше бы перевели»…

PS я сам ещё не участвую :)
Пилю потихоньку код под ролевое управление :)
Увидев данный контест тут же бросился кодить.
«инструкцию не читал» (я же самый умный).
В итоге после 4-6 боев, сделал вывод, что побеждает тот, у кого больше муравьев.
Заточился на этом и…

В общем на всякий случай, если есть еще такие же идиоты как и я — очки начисляются за захват вражеского муравейника. (+2) и списываются за захват своего (-1).

Не повторяйте моих ошибок! :)
Если у вас очень много муравьев и сложный алгоритм выбора ходов то есть вероятность нарваться на таймаут.
Против этого я написал защиту — меряю время и если близко к 0.8 — скипаю еще не ходивших муравьёв.
только таймаут на реальном сервере теперь не 1.0с, а 0.5с! вообще корректнее считывать таймаут из параметра turntime.
То есть простой выигрыш по количеству не считается? Да вроде дают какой-то опыт, вот у меня версия, которая холмы вообще не трогает:
aichallenge.org/profile_games.php?submission=1392
Доросла до скилла 52.42, потом черт меня дернул залить обновление, и как раз сервер игры сдох)
Очень нравится ваш защитный контур у базы ;)
Да, отлично работает против атаки линией) Но не панацея, к сожалению, крупными силами легко берется, вдобавок создавая пробку возле базы.
Сейчас пишу нового бота на основе A* (текущий на Дийкстре), может, меньше пробок будет.
я писал нахождение пути через волновой алгоритм + кеширование результатов (по сути для каждой пары клеток куда-откуда записывается направление для кратчайшего пути).
в этой версии правда вообще никак не сделана battle resolution и защита hill, но на какой-то момент она была в десятке лучших, aichallenge.org/visualizer.php?game=11045&user=682
У меня существенные проблемы с производительностью, уж не знаю в пхп ли дело и в моей криворукости. Думаю, и то и другое. Поэтому и A* (кстати, у него другая проблема — не могу толком определить, когда прекращать вычисления, если путь долго не находится).
Кстати, о «Дийкстре» (который, оказывается, Дейкстра).
Правильно ли я понимаю, что в данном случае волновой алгоритм от него отличается только тем, что волновой алгоритм не перепроверяет вершины, для которых уже есть число?
Ух, а я всё сражаюсь с чистотой функций и Хаскеллем в целом :)

Думаю к выходным отрефакторить весь код и сделать BFS.
Да, рефакторить надо, конечно. У меня секс со starter package занял довольно много времени, пока я не обнаружил, что он по умолчанию считает все клетки проходимыми, а UNSEEN в списке констант только для красоты %)
Вообще волновой алгоритм это и есть частный случай Дейкстры для графа представляющего собой сетку вершин. Волновой алгоритм перепроверяет вершины, только если число, стоящее в ней больше, чем число вершины из которой мы пришли, но это соответствует маркировке «вычеркнутых вершин» Дейкстры. Проблемы с производительностью, думаю на PHP будут. На плюсах достаточно тупой вариант обхода без каких-либо кеширований отрабатывает едва ли за секунду для 100 муравьев. А на кеширование нужно до (200x200)^4 байт памяти (для каждой точки «откуда» идти, сохраняем всю карту расстояний от нее == результат одного прогона волнового алгоритма). Но это как раз влезает в отведенные 1.5Гб памяти.
А как правильно кешировать с учетом не увиденных клеток? Ведь, теоретически, если не вся карта открыта, то оптимальный маршрут может меняться по мере исследования.
На счет кэширования результатов для каждой клетки это здравая идея! Но ведь карта в начале мало известна (все землей заполнено), могут вылезать косяки. Вы как это разрулили?
+ Стоит запустить playgame.py без параметров чтобы посмотреть список режимов — очень полезно для отладки
+ Если вы загружаете следующую версию бота, то, как я понял, он начинает набор очков с нуля.
Нет:
«You can upload your code as often as you want. The rankings are not cumulative, so you're not at a disadvantage by re-uploading your code.»

Общая суть: можете обновлять бота сколько хотите, Ваш ранг при этом не изменится.
*вместо «не изменится» правильнее будет «не пострадает»
Ммммм… мне кажется что по факту это не так. После обновления бота его ранг набирался с нуля.
Хм, могу ошибаться.
Недавно был сброс очков. Может быть с этим связано?
Нет, это именно сброс при сабмите новой версии.
имеется в виду, что итоговый ранг не пострадает, после окончания контеста. временные результаты, конечно, сбрасываются и skill растет с нуля.
Ранг влияет на распределение мест после финального турнира?
Что-то у меня в браузере (ffox 3.6) не работает визуализатор. яваскрипт выдает ошибку NS_ERROR_DOM_SYNTAX_ERR
Уже давно седьмой вышел, а некоторые вообще на девятке сидят (ночные сборки).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории