Chat:Ru/2020-03-24

From CG community
Jump to navigation Jump to search

Uljahn: а ты только точно в цель стреляешь или рядом тоже?

tutubalin: amurushkin такая же беда. пока не понял, где ошибка

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

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

Uljahn: а, бфс чтобы через острова не стрелять

735487: Uljahn: рядом стреляю только если цель одна и не достреливает то проверяю соседние клетки

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

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

735487: пока получается что реже стрелять надо )))

735487: я у себя наверное нашел. помоему у меня бфс не правильно работает

735487: вот это я забаговал функцию проверки на границы поля ))

735487: вместо 15 написал 5

SqueeCoder: Чтобы выйти с первой лиги, надо именно босса победить? Т.Е. бот должен обладать фиксированной сноровкой, не зависимо от силы других игроков в лиге?

Uljahn: зависимо

Uljahn: чтобы до босса дойти, надо и других побеждать

SqueeCoder: Но они-то пройдут в следующую лигу? И на следующий день их не будет...

Uljahn: достаточно побеждать других и босса чаще, чем они тебя

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

Uljahn: если кто-то им не поможет перейти в другую лигу

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

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

SqueeCoder: но тот кто сильнее босса, тот и выходит в лигу повыше. А сила у босса фиксированная? Или копирует сильного игрока какого-нибудь, он же сильнее не становится?

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

SqueeCoder: Спасибо, разобрался.

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

Uljahn: но сила у них будет также фиксированная

735487: урок который вынес. даже если ты скопировал код из другого контеста и чуток подправил не факт что он работает как ты думаешь :)

tutubalin: надо писать переносимый код!

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

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

wlesavo: лол, за ночь не опустился а поднялся на 10 мест

735487: бывает :) рандом на самом деле

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

tutubalin: придумал злую страту

tutubalin: если противник выстрелил и попал в тебя на 1, но надо самому стрельнуть и попасть в себя на 1

tutubalin: многим это сломает систему

Hamibar: я кстати сейчас стараюсь это прочекать)

Hamibar: но не думаю, что эта страта хорошая. Терять торпеду, выдавать позицию и терять хп, за то, что по идее можно посчитать.

wlesavo: tutubalin я пока не учитываю точность попадания

wlesavo: Hamibar это стоит того если у противника в пуле не останется валидных координат

wlesavo: я вот думаю что надо с хотьбой чтото поменять но пока не знаю в какую сторону

Hamibar: Ну я сейчас пишу как раз код, чтобы учитывать эту ситуацию

Hamibar: Вроде ничего сложного нет. Правда я еще не знаю как это работает

Default avatar.png [lazy]Opera: а я написал систему учитывающую 0, 1, 2, 3, 4 урона при выстреле торпедой, мины пока не сделал

Hamibar: Еще 0 нада

Default avatar.png [lazy]Opera: удобно множествами считать

Hamibar: а сори не увидел

735487: во у меня с бфс на 27 заскочил

Default avatar.png [lazy]Opera: а вы бфс используете для поиска пути или куда стреляет торпеда?

Default avatar.png [lazy]Opera: можно прекальк сделать

Hamibar: и для того и для того можно.

Hamibar: Я если вижу цель бегу к ней бфсом

Hamibar: иначе пытаюсь найти какую-то длинную цепочку дфсом)

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

Default avatar.png [lazy]Opera: а я смитсимакс попробую приделать, непонятно только как противника симулировать

Hamibar: но это надо исправлять

735487: да смитмакс тут тяжело. про противника же мало знаешь

735487: ну и ходы же не одновременные. уже тогда просто mcts

Hamibar: а можно поподробнее что такое смитмакс, а то гугл говорит что это боец мма

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

mykeich: сомнительно тут прикручивать стандартные алгоритмы

Uljahn: смитсимакс - это локальный CG мем

Uljahn: https://www.codingame.com/playgrounds/36476/smitsimax

Hamibar: Uljahn да, но на движении он никак не учитывается

Hamibar: только для сайленса пока

mykeich: в бронзу закинуло случайно

735487: я пытаюсь учитывать как я сам себя бы детектил

Default avatar.png [lazy]Opera: mykeich: а как предлагаешь ходить, если не каким нибудь mcts?

wlesavo: mykeich вуд 1 босс слишком слабый, его чет все проскакивают

Uljahn: это вуд2 слишком крутой потому что

Uljahn: а может и понерфили вуд1

Hamibar: интересно, что если нажимаешь replay in same conditions получаются разные результаты)

Uljahn: бывает, если боты юзают рандом

Uljahn: без захардкоженного сида

Hamibar: это человек)

Hamibar: но видимо тоже с рандомом

Hamibar: ааа так это же я с рандомом xD

Uljahn: хд

Uljahn: mykeich: в патчноутах пишут "Wood bosses are slightly nerfed", видимо перестарались

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

mykeich: я сконцентрировался на предсказании и вполне работает, надо остальное подтягивать

Uljahn: и с сайленсом тоже?

735487: уже было такое с какой то игрой. что все кто выходил из вуд проходили в серебро сразу :)

Uljahn: ага, тогда ещё предлагали wood переименовать в iron

735487: прикручиваю понимание что меня миной нашли :)

wlesavo: Uljahn какой самый эффективный способ в нумпай создать копию массива, именно не вью а копию с базой none

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

735487: ухты 10 из 10 сабмит :)

735487: wlesavo: да тут у всех баг на баге

735487: у меня до сих пор цель терять может

Hamibar: только сейчас заметил, что составные команды в логе занимают больще чем один ход) а я думаю как после 89го 91й сразу наступает

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

735487: да вчера поменяли

735487: я думал у меня бфс работает пока не стал дебажить )))

735487: ухты 18 место до 10% сабмита

735487: а не брешу. 25% уже

735487: пошла серия проигрышей ))

735487: может зацеплюсь за топ 20

735487: надо путь искать чуть дальше чем на 1 глубину ))

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

Uljahn: wlesavo: что за база None?

Uljahn: empty_like посмотри

wlesavo: ну .base()

Uljahn: а, тебе значения скопировать?

wlesavo: да

Uljahn: так просто .copy() не?

wlesavo: ну я пока вообще плюсую к нулевому

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

Uljahn: это тебе не deepcopy

wlesavo: ага, спс, тогда просто копить буду

Uljahn: тут тупо memcpy вроде

Uljahn: хм, при сайленсе 0 можно повернуться в нужную сторону...

Uljahn: тогда 15 вариантов получается :/

mykeich: во время сонара ход пропускается?

735487: по идее поворот при сайленсе 0 ни на что не влияет. следующий move будет с направлением

735487: mykeich: да

Uljahn: почему не влияет?

wlesavo: всмысле поворот

Uljahn: ты же направление указываешь в сайленсе

Uljahn: ща буду тестить

Hamibar: так при 0 оно ни на что не влияет. Ты же после silence все равно не можешь пойти назад.

Uljahn: хм.. ну да

735487: больше всего вариантов при surface + silence

wlesavo: фуф, пофиксил

wlesavo: аж вспотел

735487: https://www.codingame.com/share-replay/441908421 глядите какой у меня баг. в конце. аж офигел

735487: я с ним до 18 добегал )))

Uljahn: лол, норм суициднулся

735487: потерял противника и оценил что ходить никуда не надо )))

735487: пойду на ресабмит ))

735487: где то с сайленсом надо баги искать. теряю иногда противника

Hamibar: Ты не поверишь) у меня такой же был. При surface отчищал посещенные клетки.

735487: не у меня в другом немного в чем то

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

735487: надо включать режим дебага и трекать все точки как он отсекает опять )))

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

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

735487: можно

735487: выводи в дебаг и копируй в файл

735487: а локально из файла читай

Hamibar: нее ну 600 ходов ручками копировать это конечно сильно.

735487: Ctrl+A Ctrl+C

Hamibar: не понял. Куда выводить то. В стандартный поток ошибок?

735487: да

tutubalin: ага

tutubalin: а ещё можно скачать рефери

Hamibar: ну у меня там много другой инфы) так-то понятно, что можно оттуда.

Default avatar.png Abrik: Всем привет. Прохожу задачки. Такие интересные. Появился вопрос в реализации на c# Задача https://www.codingame.com/ide/puzzle/mime-type

Default avatar.png Abrik: http://chat.codingame.com/pastebin/19afb2dd-4173-46d5-9f60-06a7a47e83a6

Default avatar.png Abrik: Во второй ссылке вопрос

Uljahn: а, может расширение пустая строка?

Default avatar.png Abrik: If it is not possible to find the MIME type corresponding to a file, or if the file doesn’t have an extension, print UNKNOWN.

Default avatar.png Abrik: написано что указывать UNKNOWN

Uljahn: у тебя не на этом валится, потому что Found: applicat

Default avatar.png Abrik: а что это означает?

Uljahn: не то печатаешь, что ожидается

Uljahn: я же говорил - включи экспертный режим и посмотри тесткейсы с ответами

tutubalin: какой тест?

Default avatar.png Abrik: Settings-> Mode-> expert Ничего не изменилось

Uljahn: нашёл ответы?

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

Uljahn: Abrik

Default avatar.png Abrik: ?

wlesavo: не пойму, измеряю время во время хода и у меня некоторые ходы больше 50 ms но зашкала нет, не пойму как так

Default avatar.png Abrik: Ошибка найдена. Спасибо

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

Uljahn: либо измеряешь неправильно

wlesavo: Uljahn то есть небольшой таймаут могут простить?

Uljahn: не уверен, но вроде бы да

Uljahn: было много жалоб на таймауты во время MeanMax

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

Uljahn: в начале - после первого инпута?

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

wlesavo: нет, раншье

wlesavo: мож в этом проблема

Uljahn: угу

wlesavo: а, спс

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

Uljahn: ну да, неочевидная штука

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

Uljahn: я щас замеряю время от вывода команды до первого инпута - по сути это должно быть время исполнения бота оппонента

Uljahn: не до, а сразу после инпута

Uljahn: цифры в районе 15 - 80мс получаются

Uljahn: т.е. там ещё рефери парсит, обсчитывает

wlesavo: интересно

Uljahn: т.е. оппонент + рефери*2

Uljahn: в картишках этот фокус позволял узнать, каким номером ты играешь: первым или вторым игроком

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

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

Hamibar: что-то не нравиться мне мой код. Надо переписать пока не поздно.

mykeich: рекомендую переписывать небольшими кусками

Uljahn: хорошая идея

tutubalin: и тест и коммит после каждого значимого изменения

metahom: а что, в бронзе можно свои ходы скрывать?

Uljahn: в вуд1 вроде тоже можно

Uljahn: 6 зарядов стоит silence

metahom: теперь ты знаешь в какой я лиге :)

metahom: ясно, спасибо

SqueeCoder: на 1 ход можно скрывать? Тоже понятно в какой я лиге :)

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

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

735487: ну что зайдем без мин в голду?

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

735487: все эти вещи по хорошему надо рассчитывать. а у меня рассчет на 1 глубину всего и то только для мува ))

735487: надо научить чтоли ходить змейкой

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

metahom: как раз на месяц задачка )))

SqueeCoder: Игра, конечно огоно, спасибо, что подсказали. А я уже зарёкся геймерить...

Uljahn: настолку закодили с кастомными правилами, Automaton2000

Automaton2000: а что с ним не так?

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

metahom: опять цепные взрывы? ахах

Uljahn: не, не будет слава богу

SqueeCoder: За сколько времени примерно вычисляется противник?

SqueeCoder: местоположение.

Uljahn: зависит от карты и его траектории

735487: зависит от его действий еще

735487: чем чаще он стреляет тем быстрее

Uljahn: и от твоего сонара

SqueeCoder: простенький на вуд 2

metahom: главное зависит от твоего алгоритма

Uljahn: а, вуд2))

735487: на вуд 2 быстро вычисляется

Uljahn: старайся плават подальше от берегов и грантцы карты

Uljahn: *плавать

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

SqueeCoder: Ну мне результат не важен, в языке надо разобраться сначала.

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

Uljahn: и ограничение по времени

tutubalin: а когда голду откроют?

wlesavo: ааа такой баг нашел

wlesavo: как я с ним вообще из вуд 2 вышел

wlesavo: отсеивал угловые клетки при выстреле, ппц

Uljahn: ещё серебро же не открыли

Uljahn: голду через неделю после серебра, наверное

Uljahn: 27-го марта серебро, 3 апреля голда

Uljahn: пора написать первый класс, Automaton2000

Automaton2000: у меня в другом немного в чем то

gybson_samara: private static final int GRID_ORIGIN_Y = (int) Math.round(1080 / 2 - CELL_WIDTH * GRID_SIZE / 2);

gybson_samara: эээээээээээххх

gybson_samara: нет чтоб все в константы пихнуть или все сразу посчитать

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

735487: :)

735487: мочи мсмита пока можешь :)))))

wlesavo: это тоже, да)

wlesavo: баг с сайленс 69 конечно топ

735487: а так это босс походу так отмачивает

wlesavo: нет, это абуз

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

wlesavo: там цвета инвертируются в реплее

735487: ааа. время занимать 1 место?

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

wlesavo: я сам проигрываю почемуто

Httpsx: Какого числа Ocean of Code стартанул?

Uljahn: 20-го?

Uljahn: антикоронавирусный марафон, вливайся, ещё 26 дней с половиной

735487: блин попробовал для движения искать разные траектории на 1,2 и 3 глубину. стало в разы хуже чем просто 4 стороны проверять

735487: походу осталось добавить мины только ))

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

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

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

Uljahn: надо от сайленс 0 куда-то деваться

wlesavo: может тестил чтото

Uljahn: палят на раз уже

Uljahn: топы сабмитят тестовых ботов, ишь

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

Default avatar.png ДжБМ: ой мад, как твой CSB?

Default avatar.png ДжБМ: у меня скоро стрим, https://www.twitch.tv/cg_jbm/

wlesavo: о, амура догнал аж

Uljahn: ого, красава

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

Uljahn: время остаётся?

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

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

Uljahn: эх, кажется зря я ресабмитнул, прощай серебро

wlesavo: поправь сайленс просто и норм

Uljahn: вот и поправил назад на единичку

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: столько багов сегодня нашел конечно, прям доволен