Pull to refresh

Comments 37

Спасибо за материал.
Было бы здорово если бы вы описали как собственно начать. Такой себе hello world для Robocode. Думаю это помогло многим хотя-бы попробовать и понять в чем же суть, как происходит бой и так далее.
Если вы читаете на английском, то уже сейчас можете начать отсюда:
robowiki.net/wiki/Robocode/My_First_Robot

Я же на выходных постараюсь перевести эту статью. Да и вообще, если будет спрос, постепенно переведу все основные статьи из робовики.

Так же, может быть интересным посмотреть ролики на youtube по запросу robocode. Особенно стоит уделить внимание роликам от пользователя Azaxxo
Я за отдельный топик. Я то читаю, но на русском было бы удобнее, да и полагаю вы сможете сделать пособие по легкому старту.
Спасибо. Спрос будет. Года два назад друг рассказал про Robocode, тогда чего-то руки не дошли… А зря, пользительная вещь. Будут статьи, попробую на нашем ФИТе порекламировать.
Если хотите посмотреть как выглядит бой, на youtube можете посмотреть, набрав в поиске слово robocode. Вот пример группового рубилова на небольшом прямоугольном поле: www.youtube.com/watch?v=HsGUoA13PMo
Во, именно этой визуализации не хватает в статье. Теперь поняв, что к чему — могу даже автору кое-что посоветовать. По сути один из главных аспектов — это уход от столкновения (в данном случае от снаряда). А это я как то моделировал :)
Там не всё так просто. Радар бота не детектит летящие снаряды. О снарядах можно узнать, только когда они куда-то попадают. Радар детектит только положение и характеристики других ботов, попавших в поле зрения. А остальное – лишь предположения, расчет вероятностей, и т.д. В этом-то и интрига :)
Это конечно усложняет, но выход один — надо уходить с прямой линии противника, т.е. находить такое положение, где все прямые от центров противника тебя не касаются — и будет тот же алгоритм обхода столкновений.
В принципе да, наверное. Тут дело усложняется тем, что положение корпуса противника известно, но положение башни с пушкой – нет. А ведь башня может вращаться в любую сторону, независимо от корпуса. То есть невозможно определить, куда направлена пушка противника и куда он будет стрелять, нет прямых линий, можно лишь с некоторой вероятностью предполагать направление (сектор огня противника), но и это сложно. Для этого нужно собирать и анализировать статистику, при этом одни используют теорвер, другие – матстатистику, и т.д. Наиболее продвинутые используют нейронные сети и генетические алгоритмы. Автор с этим, по-видимому, справился лучше остальных. :)
На самом деле и не нужно знать положение башни и момент выстрела. Нужно просто исходить из наихудшего сценария. Так как если бы пушки всех танков были бы направлены на тебя. И ты уходишь от всех с приоритетом от тех кто ближе, стреляя одновременно по тем которые близко и мешают маневрировать.

Сети и генетика — тут будет слишком медленно работать и на самом деле не нужно. Любой детерминированный алгоритм будет работать выгоднее.
Tomcat — дуелист, т.е. он умеет драться только один на один, по этому далее я буду говорить о дуэли.
Нет худшего вариант. Есть диапазон позиций, которые робот может занять за время подлёта пули, ~ от -45 до +45 градусов. И любой угол обстрела, в общем случае, равно вероятен.

Далее, основной инструмент в игре — мат статистика. Теор вер играет уже на много меньшую роль, нейронные сети удачно сумел запрограммировать только один человек, а гинетические алгоритмы используются «оффлайн» — т.е. дома у себя какие-нить параметры тюнишь часами, а потом выкладываешь затюненую версию. Собственно так я и потерял корону:)
> И любой угол обстрела, в общем случае, равно вероятен.

Ну, это же не правда. В каждый конкретный момент — есть разница и зависит от количества и расположения противников. Не могут же они стрелять дугой — только по прямой.
Я говорил только о дуэли, так что противник строго один. И он может стрелять куда угодно, хоть в противоположно направлении. Хотя как раз в этом ничего страшного нет.
А, ну и может стрелять и стреляет — это разные вещи. Например, тех кто стреляет прямо по позиции Tomcat'а в момент выстрела, или полагает, что Tomcat будет двигаться строго прямо на максимальной скорости, Tomcat разрывает >99-0. Но в случае более продвинутых техник прицеливания уже намного сложно хотя бы примерно определить направление полёта пули.
Вопрос в том на основании чего можно судить о положение башни с пушкой противника. Что вообще «видит» «наш» танк?
Посмотрел немного, там все оказывается серьезно :)

Хорошо бы вы осветили бы вопрос набором статей — о радарах, управлении движением, и т.д. конкретными темами, чтобы человеку было легко сделать первую версию примитивного танчика…
Да, я постараюсь на следующей недели подготовить статью об устройстве игры и с описанием первых шагов
Отличный ролик. Многое становится понятнее. tvv, у вас же есть некоторый опыт в этом, вы бы не могли оформить статейку? Так, глядишь, народ вокруг вас и начал бы собираться.
Та не, у меня энергии не хватит. Может быть потом, если будут достижения, сравнимые с автором данной статьи…

Кстати, для меня в Robocode наибольший интерес представляют командные бои (teamrumble), вот этим бы наиболее интересно было заняться.
Ну, депрессии и личная жизнь (с Маринами) описаны здорово. Про робота — как-то мельком.
Я старался не перегрузить пост специфичными терминами, а с Маринами связаны 4 важные на мой взгляд вехи: 2 переименования, не удавшийся релиз и собственно победа. Но в любом случае спасибо за замечание, в дальнейшем постараюсь меньше отвлекаться от сути:)
Потому что они мне первыми на глаза попались, а по натуре я консерватор.
Отлично. Я сам недавно увлекся Robocode, написал нанобота пару месяцев назад, запостил туда. Понравилось. Мое мнение, чтобы войти хотя бы в ТОП 50, придется посвятить этому дело минимум человеко-месяц, и то и более. Это так, навскидку.

Пока что временно отложил, вместе с друзьями другой программерской забавой забавой увлекся (Salatron). Но я обязательно продолжу и с Robocode. Хотя мне одному скучновато немного, так как, увы, друзей Robocode не впечатлил, ну да ладно. Вот если бы кто-то замутил что-то типа клана, пожалуй, попросился бы вступить. ))
Дайте, пожалуйста, ссылку на Salatron. А то я ничего внятного не могу найти про нее.
В моём случае на то чтобы попасть в топ 50 потребовалось 2 года и ещё 3 месяца на то чтобы попасть в топ 3:) Но сейчас, для меня, я думаю потребуется не более человеко-недели на то чтобы с нуля забраться в топ-50.

А кланы там как-то не приняты.
Хотел попробовать, а там только Java/.NET :( Биндингов к другим языкам нету?
К сожалению нет. На робовики регулярно поступают запросы, но пока только прикрутили .NET и я не думаю, что стоит ожидать новых языков в ближайшее время.
<paranoia>
Да, ловко ВПК стран(ы) наиболее вероятного противника стоят ИИ боевого робота.
Как изящно — сами строгают/пилят люди, только выбирай наиболее качественное решение вопроса. Снимаю шляпу.
</paranoia>

А как зарелизить своего бота, что бы он участвовал в соревнованиях и учитывался в рейтинге?
Only those users with full accounts are able to leave comments. Log in, please.