Chat:Ru/2020-03-25

From CG community
Jump to navigation Jump to search

wlesavo: я еще косяк у себя нашел что координату после сайленса не менял, даже с этим 36ой был, ща ресабмитну глянем

wlesavo: у меня ща полуслучайный

wlesavo: но что то такое ощущение что у многих плохо фильтр на сайленс работает

Uljahn: так там комбинаторный взрыв, а 5к вариантов даже джява с трудом осиливает

YurkovAS: а что там с сайленс 0? лучше, чем сайленс 1? я просто иногда вместо мува делаю сайленс 1

Uljahn: сайленс 0 - это очевидно слишком, первым делом проверяют, что у тебя хардкод, а потом добивают :(

wlesavo: не, у меня норм обход взрыва, и почти не страдает поиск

Uljahn: обход взрыва?

wlesavo: ну комбинаторного

Uljahn: а, а то я уж подумал, ты предполагаешь, куда предполагаемый противник стрелять будет, чтобы проверить сайленс 0))

Uljahn: и обходишь это место стороной

wlesavo: не, у меня ща показатель того что меня задетектировали это потеря хп xD

Uljahn: и чё делать тогда? всплывать и убегать в стелсе?

wlesavo: не, просто стелс без всплытия, в одном из более менее хороших направлений

wlesavo: на случайное расстояние

Uljahn: по идее, всплытие сильно увеличивает варианты стелса

wlesavo: ну вообще да, но хп жалко

wlesavo: особенно если у тебя 1 жизнь осталась

wlesavo: короче я пока оставлю так, все равно потом этот момент улучшать после селфтрекинга

wlesavo: столько багов сегодня нашел конечно, прям доволен

amurushkin: о чат ожил

amurushkin: wlesavo а что у тебя за умный сайленс?

amurushkin: попробую беречь сайленс на всплытие

wlesavo: оо, чат ожил

wlesavo: amurushkin ну не прямо умный, просто прыгаю когда в меня попали или когда всплыл

wlesavo: себя же не отслеживаю пока

amurushkin: о у меня оказывается сайленс не умел дальше чем на 2 ))

wlesavo: я ща сделал учет всего урона на карте, надеюсь заработает

wlesavo: ато у меня был костыль чтобы не стрелять и триггерить в один ход))

amurushkin: SILENCE E 5 теперь так делает ))

wlesavo: а 5 разве можно?

amurushkin: у меня еще не ставит мин и не триггерит ))

amurushkin: нельзя ))

wlesavo: он тогда прыгает или аут оф рендж

amurushkin: проигрывает сразу

wlesavo: а, ну норм

wlesavo: а стрелять просто не дает, странно

wlesavo: может это фикс после сайленс 69

MadKnight: вы тут о чём

wlesavo: да про контест же

MadKnight: как успехи wlesavo? ещё куча идей?)

amurushkin: надо наверное добавить в сайленс рандома а то теперь прыгает часто

MadKnight: типа пускай на удачу прыгает?

MadKnight: ?)

wlesavo: MadKnight да ничо, вроде работает даже, надо весь базовый функционал допилить хотя бы а там уже посмотрим

amurushkin: ну всяко лучше чем сейчас по принципу подальше

Uljahn: думаю, надо себя оценивать со стороны противника и уходить в сник, когда ситуация критическая и туда, где вариантов отслеживания больше всего

Uljahn: ну и при случайном дамаге

amurushkin: у меня это есть но сайленс не оценивает только

wlesavo: перепутал сайленс с серфейс и думаю че у меня отсеиваиется все

Uljahn: вот да, я тоже перепутал и думал, что сонар только в моём секторе работает, в самом конце правил он без параметров указан, обещают поправить в следующем патче

wlesavo: так, ну вроде подсчет полного дамага на карте заработал, ща проверю сабмитом на таймауты и можно работать

amurushkin: запилил новый баг иногда 2 раза подряд всплывает ))

wlesavo: блин, таки есть баг(

amurushkin: у меня и с багом неплохо поднялся ))

wlesavo: а, нашел, после сайленса не транслировал хп потери, фуф

wlesavo: блин, вроде баг был а не могу воспроизвести, ни в реплеях ни у себя

amurushkin: может уже нету? ))

wlesavo: да не, я не меняял ничего, со случайным сидом отправил субмит, увидел таймаут, вернул сид опять отправил но таймаут нигде не воспроизводится

wlesavo: хехе, в 30 вошел

wlesavo: а по какому принципу ботом вебрут бронзового босса?

wlesavo: я понял что вроде из комьюнити кодов

wlesavo: но все таки

amurushkin: условно берут кого то на отметке 50% и таким и делают

amurushkin: но точно я не знаю как

wlesavo: сейчас мне кажется бронза уже перенаселена, 50 процентов как то слабо получается

wlesavo: ну наверное индивидуальный подход какой-то

wlesavo: интересно все так

amurushkin: ну по моим наблюдениям из бронзы примерно половину и брали

amurushkin: вот в легу берут 10-20 всего

Default avatar.png RostislaW: всем здаров

wlesavo: amurushkin а когда серебро откроется прямо сразу по рейтингу всех берут получается?

amurushkin: да всех кто выше босса как всегда

Uljahn: должны процентов 30-40 взять, по-моему

Uljahn: но может и меньше, всё же времени дофига

Default avatar.png RostislaW: что посоветуете после гонок посмотреть?

wlesavo: ну вообще да, для марафона иммет смысл меньше брать

Uljahn: RostislaW: странный вопрос, зависит от многого, для запуска рекомендательной системы инфы не достаточно :)

wlesavo: ну короче нормальный подсчет дамага дал гдето +20 мест, неплохо

wlesavo: теперь еще селфтракинг прикрутить и норм

amurushkin: походу без мин вообще никак не обойдется :)

wlesavo: да, мины сильные, иначе много действий в пустоту уходит

wlesavo: но ща надо уже следить за ними по истории

wlesavo: когда вычислил противника расположение отслеживать по карте

wlesavo: вообще история мне кажется это уже золотая страта как минимум

amurushkin: ну и то там расположение довольное приблизительное будет

wlesavo: а, ты же не видишь в какую сторону положено, я и забыл

wlesavo: ну так да, смысл уменьшается

Hamibar: Вроде вчера писали, что мину могут занерфить. Но это не точно

Hamibar: Так-то в бронзе еще мало людей. 3000 зарегано, а сабмит только 1000 сделали

wlesavo: было бы неплохо если бы показывалось в какую сторону она ставится

wlesavo: ну то что зарегались как по мне мало значит

wlesavo: одно дело кнопку нажать, другое дело написать стартового бота и засабмитить

wlesavo: а так треть отправивших в бронзе это норм

amurushkin: все я отрефакторил и подготовил код к написанию мин )))))

Hamibar: Вроде говорили, что возможно 4 силы нужно будет набрать для мины.

Hamibar: Кстати думал, что опустят ниже 100 за 2 дня. Но все таки удержался)

wlesavo: я буду рефакторить к селфтрекингу сегодня наверное

Uljahn: wlesavo: можешь подсказать, в чём предсказания хранишь?

Uljahn: у меня пока идея четырёхслойный массив размером с карту использовать

wlesavo: у меня класс для предсказаний, основное в нем это траектория в виде нумпай массива

Uljahn: траекторию-то я научился рисовать, но надо как-то удобно конечные координаты хранить, чтобы фильтровать потом быстро

wlesavo: по ней сверяюсь на самопересечения, и делаю сливания траекторий если точки совпадают

wlesavo: конечные храню отдельно свойствами

wlesavo: чтобы по ним фильтровать

wlesavo: ну и словарь траекторий всех с id

wlesavo: ну всмысле словарь объектов

Uljahn: и это в несколько мс укладывается?

Hamibar: Сливаешь траектории если конечные точки равны? или какое-то количество последних?

wlesavo: да, легко укладывается, траектории быстро фильтруются очень и там остается десяток рабочих

wlesavo: Hamibar если последние равны

wlesavo: ну такое после двойного сайленса может произойти

Uljahn: словарь траекторий... хм, т.е. отдельные траектории хранишь, ок

Uljahn: имеет смысл

Hamibar: я думал над словарем массивов сетов для траекторий :grinning:

wlesavo: что то такое получается

wlesavo: def __init__(self, start): http://chat.codingame.com/pastebin/3d7a1717-ab51-405e-992f-bc3a6ed194c9

amurushkin: Uljahn: у меня просто список конечных координат

Uljahn: я вообще начал в концептуально другую сторону думать, представление ходов в виде комплексных чисел :smiley:

wlesavo: лол

wlesavo: вычеты потом считать начнешь :slight_smile:

wlesavo: по контуру мины

Uljahn: поворт удобно реализовывать в нумпи, умножаешь на столбец [j, 1, -i] и все варианты получаешь :)

Uljahn: сумма чисел в истории даёт смещение относительно начальной точки

Uljahn: ну и ещё много полезных свойств

wlesavo: просто в таком варианте как у меня получется легко сливать траектории

wlesavo: это наверное единственный кусочек которым я прямо доволен

Uljahn: у меня тоже двойкой начальное положение обозначается))

wlesavo: ну у меня все препятствия двойка

wlesavo: чтобы не мешало влудфилу и градиентному заполнению

Uljahn: хм... т.е. и свои траектории, и суша

Uljahn: а если будет сурфейс?

wlesavo: копирую грид просто

Uljahn: и правда

wlesavo: и точку ставлю на текущих

Uljahn: спасибо, замотивировал меня продолжать

wlesavo: да не за что) ну и сливание получается просто минимумом по двум траекториям, 0 там где хоть в одной ноль и 2 там где в обоих 2

Uljahn: а что за градиентное заполнение?

wlesavo: ну я его пользую для поиска пути, в этой книжке фром пайтон ту нумпай увидел

wlesavo: правда у меня не нумпай реализация, а просто рекрсивная

wlesavo: Bellman-Ford method

wlesavo: во

wlesavo: просто сначала заполняешь сетку градиентом, а потом жадно по градиенту спускаешься

wlesavo: ну и в обратную сторону использовал чтобы убегать от соперника, не очень эффективно получилось, но как то работает

amurushkin: что то не понятно для чего оно у тебя и что заполняет

wlesavo: ну я иногда включаю режим погони и иду в сторону противника, иногда наоборот убегаю

wlesavo: когда бегу к нему ставлю противника таргетом и ищу к нему путь

wlesavo: не знаю нужно ли этовообще, но было первое что пришло в голову

wlesavo: вообще с передвижением надо что то делать наверное, оно у меня прям совсем слабое пока

wlesavo: еще вычисляю центр масс кандидатов, и иду к нему иногда

wlesavo: а заполняет грид, с учетом своей траектории

Default avatar.png Alex.swift: а кто-то уже придумал как через мины сокращать количество вариантов где может быть враг? Я вроде +- нарисовал схему но она полностью ломается после сайленса

amurushkin: я просто когда в режиме идти к сопернику расстояние учитываю и выбираю клетку

amurushkin: Alex.swift взорванная тобой мина дает тебе инфу либо ты попал либо нет. если попал то противник в радиусе 1. если нет то ты знаешь где его точно нет

wlesavo: ну я говорю, первое что в голову пришло, недавно же лабиринт решал, взял оттуда кусочек

wlesavo: Alex.swift вчера в общаке обсуждение было, я сегодня себе украл идею,вроде работает

Default avatar.png Alex.swift: amurushkin, а если ты запоминаешь траекторию соперника и знаешь где он +- ставил мину относительно запомненного пути выходит после тригера ты сокращаешь варианты где он может быть до 4х относительно его пути

wlesavo: типа считаешь для каждой возможности урон за ход, если он не совпадает с реальным отбрасываешь, с учетом мин, торпед, серфейса, вражеских и своих

Hamibar: Alex.swift, только нужно учитвать, что может быть много взрывов в 1 ход

amurushkin: Hamibar: не может. только 1 мина и 1 торпеда

Hamibar: это уже 2)

Hamibar: тем более ты рассчитываешь свои действия раз в 2 хода. За которые может случится 4 взрыва

amurushkin: нет

amurushkin: ну я бы не считал торпеду взрывом.

Hamibar: может быть я ошибаюсь но смотри. Я стреляю, потом стреляет оппонент. Дальше я получаю данные сколько хп у кого отнялось и исодя из этого делаю перерасчет

Hamibar: *исходя

Hamibar: Как раз сейчас это дебажу_

Hamibar: )

amurushkin: или сначала он а потом ты ))

Hamibar: и почему не считать торпеду взрывом? Действие же такое же.

Uljahn: угу

amurushkin: последствия для выстрелившего разные

wlesavo: ну я говорю, суммарная потеря хп за время от инпута до инпута

wlesavo: рассчитанное в соответствии с полной последовательностью действий

Uljahn: The basic idea of what I used is: http://chat.codingame.com/pastebin/9dbc6314-f7e5-4c30-8378-c46af9b64aa0

Uljahn: вот тот лог

wlesavo: именно, да

Uljahn: вчерашний

Hamibar: ага

wlesavo: я это реализовал и сразу +20 мест

Hamibar: я тоже там подсмотрел

amurushkin: вот если ты триггернул и торпеду пустил а у противника отнялось 2 хп. и даже если он не стрелял и не взрывал это уже 3 возможных вариант

Hamibar: добавим все точки в которых суммарная потеря здоровья 2 и все.

amurushkin: может действительно себе свои ифы переделать на такое ))

Uljahn: или отфильтруем все траектории, где не 2

Uljahn: этот подход уж больно хорошо на массивы ложится, пара строчек на нумпи

Hamibar: amurushkin, я ифами пытался вчера, но не смог отдебажить.

amurushkin: хмм. эта фигня не работает если он перемещается же. надо еще это учитывать

Uljahn: try keeping a list of all explosions, and as soon as the enemy moves, change the locations of all explosions in the direction of their move. This should help with opponents firing after moving.

wlesavo: ну у меня даж без нумпай одна функция которая на каждый взрыв колится

wlesavo: for i in Enemy.enemies.keys(): http://chat.codingame.com/pastebin/e5a21e45-bb33-4f62-b02c-74e0c4dedda7

Uljahn: вот ещё хинт вчерашний

wlesavo: я просто в порядке хода все делаю, то есть был взрыв, сразу его считаю

Hamibar: можно сначала учитывать выстрел, а потом движение.

Uljahn: т.е. надо команды соперника парсить в обратном порядке ещё?

wlesavo: зачем в обратном

wlesavo: в прямом же

amurushkin: а если ты сначала в него попал потом он двинулся и выстрелил и попал в себя

Hamibar: зачем? Неважно же двинулся он или нет. Координаты выстрела не меняются

amurushkin: то тут двигать взрыва не прокатит

amurushkin: Hamibar: важно потому что его положение во время выстрела было другим

Uljahn: если он попал в себя - то это бот уровня леги или дна бронзы

wlesavo: amurushkin ну я последовательно обработаю два выстрела и посчитаю сумму конкретно для этого соперника

wlesavo: есть нормальные боты которые если уверены в положении могут выстрелить зацепив себя и нанеся 2 урона тебе

amurushkin: вот у меня сейчас сначала свои взрывы ифаются. потом у соперника по мере поступления проверяются

Hamibar: amurushkin ну щас попробую закодить. Посмотрю как работает.

wlesavo: просто он двинулся, для этого соперника координата и изменилась уже, в чем проблема не совсем понимаю

amurushkin: проблема когда взрывов много и задевают и свои и чужие

wlesavo: ну я имею ввиду при описаном подходе в чем проблема

amurushkin: смотри ты выстрелил. попал. соперник подвинулся. выстрелил. и попал в себя тоже. урон 2. как считать его положение

Hamibar: amurushkin ну если нужна большая точность, то наверное стоит учитывать.

wlesavo: просто не отфильтровываешь сразу по урону, а копишь за полный ход от инпута до инпута и потом отфильтровываешь

wlesavo: amurushkin я храню соперника, не только координату же

wlesavo: двинулся, соперник тот же координата другая, урон суммарный от двух действий

Uljahn: не пойму, что в конце случилось https://www.codingame.com/replay/442247866

Uljahn: вроде, в максимум ходов не упирается

Uljahn: или его опять изменили?

Hamibar: торпеду в 9 4 отправил

Hamibar: просто не прорисовали в последний ход ее

wlesavo: выстрел же, да

Hamibar: посмотри по команде последнец

Uljahn: а, точно, это плеер последний кадр не отрисовал

amurushkin: да плеер перестал рисовать после последнего обновления

wlesavo: нашел мини баг у себя, сделал обновление кулдаунов чтобы стрелять сразу после мува, а учитывал не обновленные при просмотре возможности выстрела

wlesavo: amurushkin а раньше разве рисовал, я думал так и было

amurushkin: рисовал

Hamibar: amurushkin я кстати кажется понял тебя. Действительно важно учитывать мув)

Hamibar: wlesavo у меня пару дней назад такое было

Uljahn: "у меня просто список конечных координат" - и направления как-то запоминаешь, amurushkin?

input.txt: у меня так же, запоминаю только последнее т.к. не вижу способа сделать это для всей истории с учетом сайленса

wlesavo: опа, наконец воспроизвел таймаут, мина какимто образом из списка не дропалась оказывается после взрыва

wlesavo: о как, двойные мины не разрешены, я чет не думал про это

wlesavo: читал но не думал что такая ситуация возникнет

Uljahn: когда сам на свою ставишь?

Hamibar: You can't place two own mines on the same cell. вот что написано

wlesavo: да, сам на свою если, не, я в правилах то видел, но почему то не подумал что у меня возникнет

amurushkin: Uljahn: да последнее направление и точки где может быть

Uljahn: а если последним был сайленс - это какое направление?

Uljahn: или это просто больше точек, а направление с предыдущего мува?

input.txt: единственное применение последнему неправлению это отсечение лишнего луча от сайленса

input.txt: а двух сайленсов подряд не бывает

input.txt: так что не важно

Uljahn: спс, буду думать

amurushkin: Uljahn: если был сайленс то добавляю из каждой точки еще

Uljahn: из каждой? у wlesavo самопересечения фильтруются

amurushkin: из каждой но я не добавляю одну и ту же клетку много раз

MadKnight: новости видели?

amurushkin: да

wlesavo: MadKnight которые из

MadKnight: про след неделю

MadKnight: типа след неделя - выходные

MadKnight: неделя выходных

MadKnight: а всякие сроки по всяким выплатам откладываются

wlesavo: а, я думал про то что примут закон об ответственности за нарушение карантина

MadKnight: а про такое я не слышал

MadKnight: так они же официально ещё не запускают карантин

MadKnight: просто выходные дали

wlesavo: не, если ты приехал из центра какого нибудь то ты на карантине, смска там приходит даже

MadKnight: в каком смысле?

MadKnight: из какого такого центра?

MadKnight: куда?

MadKnight: если вот например щас поедешь из мск в крым, то что?

wlesavo: ну из центра эпидеомелогического

wlesavo: типа с италии

MadKnight: а если из мск в крым?

wlesavo: на счет крыма не знаю, но знакомый из австрии даже вернулся и посадили на карантин

wlesavo: пересылал смску даже

MadKnight: так а если по россии?

MadKnight: из россии в россию

wlesavo: по россии пока нет вроде, не сышал во всяком случае

MadKnight: ну и норм

wlesavo: мне вот в белорусь надо

MadKnight: зачем тебе туда

wlesavo: к невесте

wlesavo: ато умрет и не поженимся

MadKnight: ты совсем чтоли переезжаешь в белорусь?)

wlesavo: не, это она переезжает, но сейчас вообще оттуда не пускают

wlesavo: ток если вид на жительство есть

wlesavo: а нас вроде выпускают, но с риском на карантин попасть

wlesavo: о, подлечил пару багов и на пару мест поднялся

tutubalin: пара мест - в рамках погрешности

wlesavo: ну там с 30 до 24 было, ну да, +-

wlesavo: но баги неприятные были

wlesavo: ладно, пора селф трекинг прикручивать, хватит откладывать

Hamibar: нашел баг ценой в 200 мест.

wlesavo: + 200 или -200?

Hamibar: Как посмотреть. Если с багом -200, если без +200

Hamibar: Выстрелы конечно дают очень много нужной инфы. Почти вседа держу в прицеле врага.

Hamibar: https://www.codingame.com/replay/442310008 хах самоподрыв миной. А я их не учитывю пока.

wlesavo: ухты, меня в 20 закинуло без ресабмита даж

wlesavo: да, были тож самоподрывы

Hamibar: но это плохая стратегия)

wlesavo: ну это скорее не стратегия)

Hamibar: я вот думаю стоит ли всплывать если знаешь точное положение врага, но не можешь дойти.

wlesavo: не особо

wlesavo: только если у тебя сильно больше хп

wlesavo: просто он уйдет в сайленс, а ты хп потратишь пока дойдешь

Hamibar: Ну да. Вроде можно, но много разных условий должно совпасть.

wlesavo: можно всплывать если тебе все равно скоро всплывать

amurushkin: я думаю еще можно если буквально тебе прямо сейчас не дает твой путь по нему стрельнуть

Uljahn: в смысле - добить?

Uljahn: если добивать, то там и с мув+сник+торпеда на 9-10 клеток можно дамажить

Uljahn: а так - лучше минами, наверное

wlesavo: ух ты, селфтракинг заработал

wlesavo: внезапно

Hamibar: мины вообще выглядят как имба. Себя не палишь и еще кучу вариантов отсекаешь

amurushkin: почему бы ему не заработать ))

wlesavo: вроде все сделал все продумал а не работал потому что брал потери жизни за новый ход а не предыдущий

amurushkin: только мне это похоже не особо помогает

wlesavo: да просто изменений очень много

Hamibar: wlesavo ты себя что-ли по другому трекаешь?

wlesavo: так же, но у меня не очень удобно было сделано

wlesavo: пришлось флажок везде впиливать

wlesavo: а, блин, сонар же еще отключил

wlesavo: когда вы начинаете стрелять? сколько кандидатов когда остается?

wlesavo: я мины взрываю гдето от 10, а стреляю от 4-5

Hamibar: я если выстрел покрывает минимум половину возможных клеток.

wlesavo: то есть можешь даже при 17 выстрелить в худшем случае самом

Hamibar: даже при 18

wlesavo: а, чет подумал что больше половины

wlesavo: не, я стрельбу по числу кандидатов активирую, и там уже выбираю точку максимально эффективную

wlesavo: ну ладно, попробую сабмитнуть, вроде в селфплее неплохо уворачиваются

BorisZ: я при 1 кандидате, клуб снайперов

Hamibar: я вот убрал нырок после торпеды. Как-то не очень вышло.

wlesavo: блин, таймауты, эх, чето не доделал

Jokero: Привет народ

Jokero: блин, контекст уже идет во всю

BorisZ: трекинг оказался жутко сложной штукой

Jokero: а до какого он будет?

Hamibar: еще 25 дней

Jokero: о, фига

BorisZ: пока короновирус не будет побежден

Hamibar: BorisZ у меня трассировка от попаданий через такой костыль сделана)

Jokero: ))) я так и понял, что это из-за короновируса даты сместили

Hamibar: Jokero не это внеочередной

Hamibar: еще в мае будет

BorisZ: я до трассировки от попаданий даже не дошел еще (

BorisZ: только мувы, сайленсы и запуски торпед

Hamibar: а ты только конечные точки хранишь?

BorisZ: относительный путь храню

BorisZ: и точки которые точно были посещены

wlesavo: нашел косяк, сектор от сайленса забыл отдать на вход самофильтра

Jokero: в мае говорите, ооо круто. у меня прям контестотоксикоз.

Hamibar: BorisZ Ну с трассировкой по путям наверное сложновато)

wlesavo: такс, выглядит оптимистично сабмит

Hamibar: я делаю все что в моих силах, чтобы тебя запушить) 2 раза проиграл

wlesavo: надо будет поиграться с параметрами на выстрелы и эскейпы

wlesavo: может мины раньше начать взрывать

amurushkin: wlesavo: я стреляю с 4

wlesavo: ну самопредсказания и ранние эскепы прирост дали таки, с 20 на 15

wlesavo: даже иногда дбдра побеждаю

wlesavo: о, 2-1 с дбдром

wlesavo: ну ладно, топ 10 я доволен пока

wlesavo: селфтракинг +10 мест гдето

Uljahn: супер

wlesavo: базовый функционал вроде весь, теперь нужна оптимизация движения какаято

wlesavo: у топ 1 забавный баг, на первом ходу иногда пишет SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE | SURFACE |

Uljahn: ехал Грека через SURFACE, видит Грека - в SURFACE SURFACE, сунул SURFACE SURFACE в SURFACE - SURFACE | SURFACE | SURFACE | SURFACE

wlesavo: :smiley:

wlesavo: я тут подумал, можно вычислить с какой границы соперник начинает прыгать, и занижать планку стрельбы)

Uljahn: границы?

wlesavo: ну когда начинают думать что их обнаружили, не все прыгают когда уже точно обнаружены

Uljahn: у вас в топе свои приколы :)

Default avatar.png Alex.swift: а сайленс не может пройти сквозь свой путь?

Uljahn: нет

Uljahn: сайленс как мув, только противнику не показывается

Uljahn: и заряжаться нельзя

Uljahn: ну и макс длина больше

Uljahn: *направление не показывается

BorisZ: сквозь свой путь не пройти - я проверял

Hamibar: минки дали +10 мест. Вот я думаю случайность это или все таки улучшилась стратегия.

BorisZ: я тоже мины прикрутил, лучше не стало - стали чаще меня выпаливать видимо

BorisZ: нос подняли хвост упал, хвост подняли - нос упал (

Hamibar: по минам? это как?

Uljahn: а, т.е. меньше зарядов на сник теперь остаётся

Uljahn: реже сник - быстрее выпаливают

Hamibar: а ну так возможно.

BorisZ: да, меньше на остальное остается

BorisZ: надо себя считать конечно

Hamibar: Просто у меня если есть выбор что зарядить, то я заряжаю сало

BorisZ: у меня там накручено уже три этажа ифов - в каком порядке заряжать )

Hamibar: нее я пока этим не занимался

Hamibar: if (pl.torpedoCooldown > 0) { return "TORPEDO"; } if (pl.silenceCooldown > 0) { return "SILENCE"; } if (pl.sonarCooldown > 0) { return "SONAR"; } return "MINE";

Hamibar: :grimacing:

BorisZ: я сначала смотрю как давно юзал сайленс, потом если мало вариантов и они близко то торпеду, потом мину, а до сонара еще не дошел

BorisZ: надеюсь что все это временно, но практика показывает что потом руки не дойдут переделать )

Hamibar: ну да по хорошему эту часть надо править)

Default avatar.png TTeaLL: поцы, вы в диске сидите?

tutubalin: интересный факт: если бы поле было вообще без островов, и можно было бы использовать сонар в первый же ход, то в среднем он давал бы нам примерно полбита информации

Default avatar.png TTeaLL: кто тут

Default avatar.png TTeaLL: я на питоне пишу

Default avatar.png TTeaLL: с чего начать можно, я не пойму

Default avatar.png TTeaLL: я понял как двигать, понял что х остаров, а дальше что, как понять какая координата у противника

BorisZ: неизвестно , игра с неполной информацией, нужно вычислить где противник и завалить

BorisZ: в инпуте дают его перемещения - только направление

Default avatar.png TTeaLL: так

BorisZ: полбита информации - очень сложно понять сколько это )

wlesavo: BorisZ я заряжаю сайленс по кд, но трачу его не очень часто, в приоритете торпеда, локатор только если он дает информацию нормально, остальное на мины

Default avatar.png TTeaLL: в инпуте вот которые sonar_result = input() opponent_orders = input()

BorisZ: wlesavo ну ты говоришь что уже считаешь себя от врага, тебе ясно когда его юзать, а нам ленивым - тыкать пальцем в небо )

wlesavo: если только начинаешь не самая простая игра чтобы вкатиться

Default avatar.png TTeaLL: так, я могу использовать sonar_reult и opponent_orders как переменные в которые записываются деймтвия surface

wlesavo: BorisZ до того юзал только когда по мне попали, это одна строчка) просто сильно чаще сайленс не особо помогает

Default avatar.png TTeaLL: да, но она 30 дней, уже меньше. хочу попробовать

Default avatar.png TTeaLL: есть пример простого рабочего кода, чтобы понять с чего начать, я пока не думаю о продвинутых стратегиях, мне бы понять как двигаться, не наступать на свои же шаги и какие вообще переменные используются

BorisZ: TTeaLL начни с того чтобы просто плавать не врезаясь в острова и не пересекая свой путь

Default avatar.png TTeaLL: во во, и как это сделать? ну допустим, острова это х, тогда if my_id != x: тогда можно плыть?

BorisZ: нет, вобще мимо, твой ийди не нужен, x, y - твои координаты

BorisZ: координаты воды\земли нужно сохранить - они даются перед первым ходом

Default avatar.png TTeaLL: таааааак, вот сейчас не понял, там же написано x это остров . это пустота

Default avatar.png TTeaLL: а как сохранить?

Default avatar.png TTeaLL: нужен какой-то массив, и как вообще узнать где что, surface даёт инфу об островах?

BorisZ: width, height, my_id = [int(i) for i in input().split()] for i in range(height):

   line = input()

BorisZ: перед этим - board = [] в цикле - board.append(line)

BorisZ: теперь у тебя board[y][x] == 'x' - это остров

BorisZ: но лучше пройти туториал по контестам, так ты далеко не уедешь

Default avatar.png TTeaLL: а где он?

Default avatar.png TTeaLL: я тут недавно

BorisZ: https://www.codingame.com/multiplayer/bot-programming/coders-strike-back

Default avatar.png TTeaLL: спасибо, за сколько я смогу освоить эту игру?

Default avatar.png TTeaLL: тут вроде как-то можно было запустить её на локальном сервере?

BorisZ: вроде бы когда зайдешь он стартует с туториала если не играл еще, но я не уверен

BorisZ: можно, но долго разбираться, в браузере проще

735487: у меня тут такие баги вылазят пипец. вплоть до того что я учитываю стрельбу туда куда не стрелял )))

735487: что то не прокатило у меня версия с подсчетом взрывов. набаговал наверное. вроде и работает и определяет противника а в целом результат херовый какой то

wlesavo: мож у тебя ботлнек не в определении

735487: ну вот с другим определением на ифах забираюсь обратно

wlesavo: а, в смысле хуже стало

735487: может наоборот определять вредно )))

wlesavo: я думал просто лучше не стало

735487: стало -100+ место ))

735487: всмысле на 100 мест хуже стало