Pull to refresh

Comments 20

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

Победитель — Mr.Smile — использовал генетический алгоритм для подбора констант. Об этом можно почитать в его посте. Еще в обсуждениях на сайте несколько человек упоминали, что использовали нейросети и/или генетические алгоритмы. Но особого успеха стратегии этих людей вроде не достигали. Вообще, хорошо бы увидеть истории еще нескольких топовых участников; вполне возможно, что они тоже что-то интересное использовали.
>Победитель — Mr.Smile — использовал генетический алгоритм для подбора констант.
Спасибо, именно то, о чем я и хотел услышать.
У меня в начале конкурса тоже были идеи о чем-то самообучающемся. Но для воплощения этих идей в жизнь нужно уметь локально проводить огромное количество боев. Организаторами инструментов для этого предоставлено не было. Чтобы самостоятельно сделать такое, потребовалось бы декомпилировать и модифицировать Local Runner — программу для запуска боев локально. По умолчанию она не поддавалась практически никакой настройке и позволяла запускать лишь один экземпляр стратегии игрока против пары простых дефолтных стратегий. Я в реверс-инжиниринге обфусцированного Java-кода не силен, поэтому идею забросил. Оказывается, несколько человек все же проделали всю нужную для этого работу, и выложили результаты для всеобщего пользования. Но я об этом узнал слишком поздно и никакого самообучения не вышло — пришлось обучать руками.
Я планировал использовать в паре мест и код уже был почти готов, но даже тестовые версии быстро уперлись в ограничение по размеру кода (в документации его не было) — пришлось все выкинуть.
Спасибо огромное! Вы гораздо ближе к народу, чем победитель
Все что до главы «раунд 2» — мысли и действия почти один в один :)
Спасибо за интересный рассказ. Ну а сам код стратегии вы покажете? =)
Присоединяюсь, хотелось бы заценить код.
Ждем.
Взамен (если интересно) могу выложить код своей (http://russianaicup.ru/profile/beat) стратегии (написанной на c#). Правда выше 48го места (в песочнице) она так и не поднималась + она только для боев 6х1 (на 3х2 и 2х3 я забил), но она хорошо комментирована.
Спасибо, читаю, очень интересно.

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

static protected int AliveEnemyCnt()
{
int r = 0;
foreach (Tank tank in world.Tanks)
if (!tank.IsTeammate && !IsDead(tank))
r++;
return r;
}

А вот однострочный эквивалент с использованием linq:
return world.Tanks.Count(tank => !tank.IsTeammate && !IsDead(tank));
Я попросту очень мало работал с C#, и пишу на нем так же, как всю жизнь писал на C++. Уже в конце разработки я поставил ReSharper и заметил, что он предлагает мне подобным образом переписать многие куски кода. Я попробовал сделать это, но код в такой форме показался мне каким-то неродным, и я забил. В будущем постараюсь использовать LINQ почаще — видимо это модно)
Странно, что организаторы конкурса добавили возможность узнать имя соперника. Вообще, что от этого конкурса, что от последнего на aichallenge.org, остался осадок от того, что у многих ботов в топе AI как такового и не было.
А есть ли актуальные на данный момент конкурсы аналогичной направлености? Потому что сабжевый я фееречески проспал, особенно обидно что весь ноябрь провел в отпуске.
А чем этот не устраивает? Песочница будет открыта (по заверениям организаторов) еще несколько месяцев, то есть можно участвовать, но уже не за призы, а просто ради спортивного интереса.
Этот устраивает, я спросил чтобы не проспать еще что-то интересное ))
Про пушку — я делал несколько иначе — если пушке не хватало времени развернуться к врагу до конца перезарядки — помогал колесами. При этом при выполнении маневра уклонения «помогал колесами» отключалось :)

К сожалению, со свободным временем была засада, так что во второй раунд не вышел (и бросил после этого). Бот так и болтается в районе ~ 350 места
Если скорости поворота пушки недостаточно для поворота к цели за оставшееся время перезаряда, повернемся к цели всем корпусом.

Разве не то же самое?
как-то прочитал и запомнил иначе )
отвлекли в процессе чтения — вспомнил сейчас, обрадовался что хоть кто-то из топов упомянул о таком поведении в рассказе о.
Алзо, понравилось что высокий результат был получен без страшных генетических алгоритмов и разбиения поля на безумные сетки %)

Ну и повеселил чит «если это мегабайт, то ОПАСНОСТЬ!» %)
Sign up to leave a comment.

Articles