Pull to refresh

Comments 15

Огромное спасибо за рассказ, очень интересно читать эти истории. Я добрался до 230-го места к началу 2-го раунда, так что мне хвастаться нечем. А потом я начал что-то менять, но у меня не хватило времени закончить и отладить, и стратегия скатилась куда-то далеко в 500-е. А вы будете публиковать код?

У меня много проблем вызвал возврат машины на трассу в случае столконовения, а еще хуже, если ее вытолкнули с предполагаемой траектории (в смысле, с тайлов, по которым предполагалось проехать). У меня возможны три случая:

— с траектории не улетели, чуть отъехали назад, поехали вперед
— вылетели с траектории, отъехали назад, вернулись на траекторию
— можно вернуться без отъезда назад

Практически все мои проигрыши связаны именно с этим.

Ну и еще пара вопросов: вы как-то избегали столкновений с противниками? Меняли алгоритм выстрелов шинами для джипов? Я написал улучшение, которое выстреливало шину в наиболее неудобные для соперника моменты типа входа в T-образный поворот, чтобы атакованную машинку проталкивало мимо поворота и ей приходилось возвращаться.
Код публиковать не очень хочу, там же из-за сжатых сроков костыль на костыле без всяких комментариев.

Возврат на трассу у меня сделан тривиально: за 50 тиков перемещение меньше 10? Включаем задний ход на 150 тиков, тормозим до остановки, едем дальше как ехали.

Про столкновения с соперниками я написал в заключении: никак не избегал, и из-за этого постоянно страдал.

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

Вообще интересно, что разные нюансы имплементации непредстказуемо влияют на результат. Моей машине удалось весьма неплохо ездить в целом, но благодаря вот этим затыкам в боковых дорогах и столкновениям я даже не попал во второй раунд. Ну, может в следующем году повезет…
Руль я тоже кручу, когда назад еду, как на реальной машинке, т.е. если до следующей точки угол X, то кручу руль на -X.
Все люди в мире пишут иногда ужасный код. Из-за того, что люди боятся расшаривать некрасивый код, очень много интересных исходников остаются закрытыми.
Всегда лучше опубликовать код, вдруг кому-то что-то в нем будет интересно. Все понимают что никто для соревнования не будет писать красивый структурированный код.
Убедили. https://github.com/mbakulin/russianaicup2015
Один коммит (Final) — то, что участвовало в финале. Другой (Sandbox) — то, что заканчивало песочницу, концептуальных изменений не слишком много.
50 и 150 не многовато? У меня было 30 и 90 вроде.
В коде
большое количество констант, подобранных на уровне здравого смысла и метода «на глазок»
Насколько я помню, за 90 тиков бот просто не успевал отъехать назад, так как очень долго двигатель переводился от EngintPower = 1 до EnginePower = -1.
Забавно мысли перекликаются, такое прохождение траекторий я придумал, но реализовывать было уже лень.

А вот поиск пути, по-моему, у меня более элегантно был сделан, могу расписать, кому интересно.
Если брать топ песочницы только по питону, то у меня третье место 8)

З.Ы. Плагин-визуализатор в статье — мой :)
И я даже упомянул в статье, что он ваш. Но поблагодарю ещё раз, спасибо :)

До него я использовал запись из стратегии текста в файл, который потом читал из плагина, сделанного на основе данного организаторами образца. Но это было неудобно и более медленно.

Про поик пути пишите, интересно. Или на форуме соревнования в теме обсуждения алгоритмов расскажите.
+1 за описание поиска пути — тоже очень интересно!
Хороший плагин, годный. А еще кто-то прибедняется, что джаву плохо знает…
Не знаю :) Это я у тебя насмотрелся.
Да и плагин не с пустого места сделан был, а с некоторой «рыбы».
А вот поиск пути, по-моему, у меня более элегантно был сделан, могу расписать, кому интересно.

Просим! :)
Попробую найти свободное время на работе, распишу тогда вместе с примерной историей развития.
Sign up to leave a comment.

Articles