Chat:Ru/2020-03-29
Uljahn: ого, Hamibar обогнал wlesavo
Uljahn: весело у вас там
Hamibar: да за ночь запушили немного
amurushkin: люблю когда сабмит начинается 10 из 10 )) пришел уже к тому что дальше все что у меня можно менять это угадывать мины. лучше отсекать сайленс путем трекинга путей и вообще нафиг ифы убирать и заменять это как то перебором действий. в голду вроде и так пройду
amurushkin: решил попробовать включить сонар если предполагаемых секторов 2
Inet_zlodey: ребят, может кто подсказать на задании грабители банков на СИ?
amurushkin: тут много заданий. лучше более конкретный вопрос задавать
Inet_zlodey: http://chat.codingame.com/pastebin/d177d6bd-3974-4092-be92-095273de5149
Uljahn: есть решение на с++ у меня
Inet_zlodey: Как вы присваиваете вору новую ячейку в итоге?
Alex.swift: amurushkin а включаешь сонар на рандомное если зон > 2 или по какому-то критерию выбираешь? Я беру ту зону где больше точек, но думаю может будет эффективнее если использовать сонар когда на нескольких зонах +- одинаково точек
BorisZ: теоретически максимальное количество информации мы получаем если делим множество примерно пополам
BorisZ: то есть половина в одном секторе и половина в другом, или половина в одно и половина в нескольких разбросана
DenShlk: если зоны прям 2 то без разницы где включать)
Alex.swift: надо попробовать переделать по такому принципу, спасибо
wlesavo: DenShlk без разницы где но важно в этот момент включить
BorisZ: угу, если 2 и пополам то пофиг, а если 1 с половиной то в ней
DenShlk: кажется оптимально там где больше всего
Alex.swift: DenShlk в одной зоне может быть 1, а в другой 20. Ты включаешь на ту, в которой 20 и получаешь Y. В результате отсекаешь 1 ячейку сонаром
BorisZ: но у меня все это не взлетело совсем хз почему
wlesavo: BorisZ я хардкодно ставлю сначала 3-4 мины и потом уже сонарю
amurushkin: Alex.swift: в конечном итоге у меня сонар в 99% случаев не используется вообще. у меня без него лучше почему то
BorisZ: если 20-1 то не надо вклчсать
DenShlk: Alex.swift или включаешь там где 1 и получаешь N
BorisZ: вклучать если 10-11 или 10-5-3-2 например
DenShlk: надо попробовать сонар прикрутить тоже
BorisZ: wlesavo может правда хорошая идея - сначала засеять немного минами потом если нужда есть заряжать сонар
Alex.swift: я когда сонар выключаю у меня +- такой же рейтинг выходит
BorisZ: просто сонар стоит дороже мины, 3 сонара == 4 минам а с мин инфа + урон а с сонара инфа только
Uljahn: вот бы у сонара какой-то бонус был ещё, типа обнулять сопернику чардж сника)
DenShlk: тогда сонар потом сразу торпеда, и без шансов)))
wlesavo: все, устал от минных полей, кажется нужна кумулятивная оценка всплытия как минимум
wlesavo: я кстати поставил на взрыв мин такой же порог как на стрельбу, иначе фиг попадешь, все же умные никто не идет на мины до последнего
amurushkin: типа взрывать только если точно уверен?
wlesavo: ну не точно
wlesavo: опять один рандом таймаут на сабмит, теперь ищи где
Alex.swift: А до фаталити есть смысл двигаться в сторону соперника если знаю где он или это неоправданный риск?
wlesavo: такой баг детский нашел, как я с ним вообще в топе сидел хз
amurushkin: вот это я тоже не могу понять. как двигаться лучше всего
amurushkin: wlesavo что за баг? может это фича?
wlesavo: and вместо or на проверке мин, и короче не взрывал мину если я с ней на одной прямой нахожусь, даже когда она точно урон противнику наносит
Alex.swift: я так один баг пофиксил и упал на 150 позиций. До сих пор закоменченный фикс оставил подумать как мне этот баг помогает
wlesavo: Alex.swift риск большой, нет смысла
amurushkin: я тоже не взрываю мину если она меня дамажит
Hamibar: я вот думаю не взрывать мину, если она тебя сильно выдает
Hamibar: типо рядом с собой взорвал и отсек свои возможные позиции до нескольких
wlesavo: не думаю что это эффективно
Hamibar: почему. Так взорвал и противник тебя обнаружил. А ты получил ничего. Если конечно взрываешь не со 100% уверенностью в уроне
wlesavo: ну сделать можно, но к тому что со взрывов и так мало очень информации получаешь, не думаю что это принципиальный момент
Hamibar: наоборот же от взрывов очень много инфы
wlesavo: ну ты считал сколько вариантов прунится от триггера?
Hamibar: прунится?
wlesavo: отбрасывается
Hamibar: нее это не считаю
Hamibar: но надо бы
amurushkin: как вы оцените хорошо я делаю или нет. я когда выбираю в какую сторону двигаться оцениваю сколько моих положений видит соперник + количество полей по флудфилу. и стараюсь это число максить
wlesavo: плюс мины
amurushkin: вероятность наступить на мину? у меня пока еще нет трекинга мин
wlesavo: я пока делаю так, беру направления с большим флудфилом, и среди них минимизирую информацию и возможный урон
amurushkin: а возможный урон у тебя учитывает как то соперника?
wlesavo: мины имею ввиду только
Hamibar: а что такое флудфил?)
Uljahn: :smiley:
wlesavo: простой способ посчитать площадь
Hamibar: ааа, понятно.
amurushkin: да надо мины прикрутить попробовать. собираюсь заполнять у каждой точки что то типа массива где по этому пути могли бы быть мины. потом все эту в одну кучу складывать и идти туда где меньше
tutubalin: amurushkin иногда ты отправляешь команду "| MOVE E TORPEDO"
tutubalin: то есть как бы их две, но первая пустая
wlesavo: не
wlesavo: он просто все команды начинает с палки
tutubalin: но это ещё ладно. я видел людей, которые делают MOVE без чарджа
wlesavo: проще плюсовать
wlesavo: тоже так делаю
tutubalin: о, и правда
tutubalin: сломали мне парсер, негодяи )
wlesavo: лол
wlesavo: хм, там еще и пробелы у него, интересно не ломается ли мой парсер
wlesavo: kjvftn
wlesavo: ломает
wlesavo: хм
wlesavo: или нет
wlesavo: а не, рефери сам форматирует нормально и отдает
wlesavo: amurushkin а зачем ты останавливаешься чтобы мину поставить?
amurushkin: wlesavo: я специально так сделал типа чтобы больше полей было оставшихся
amurushkin: надо попробовать ради эксперимента поменять наверное
wlesavo: ну я так и понял что время экономишь
wlesavo: но не знаю эффективно ли это
wlesavo: не заряжаешь же в это время
Uljahn: угу
amurushkin: ну вот засабмитил. пока хуже идет
wlesavo: надо по паре тройке сабмитов хотябы
amurushkin: вообще в идеале бы это как то сделать чтобы бот решал как лучше
wlesavo: поправил косяки наконец-то, ща посмотрим что будет
BorisZ: мне кажется что время экономить нет смысла, ну отдалишь ты всплытие немного, все равно за длинный бой будет одно всплытие минимум
BorisZ: а мин будет меньше на 30%
BorisZ: ну или на сколько-то там 25-33% )
BorisZ: да и всплытие может быть спасением иногда
amurushkin: ты точно также на эти же 30% увеличиваешь себе время до всплытия
wlesavo: я пока думаю улучшить оценку мин, и все таки делать превентивное всплытие по хорошему критерию
wlesavo: у меня был баг еще ща что фаталити не работало когда у меня 1 хп
wlesavo: там случайно себя с противником в одном месте перепутал
amurushkin: у меня пока вообще этого всего нет :)
wlesavo: во, другое дело, топ 6 на 50 процентов
amurushkin: неплохо
amurushkin: а стартовую позицию как выбираешь?
wlesavo: хотя не, луз стрик, ща упаду)
wlesavo: amurushkin рандом чтобы рядом не было островов, на расстоянии 1
Vitaliy_Kamalin: а вы в какой лиге?
wlesavo: серебро
tutubalin: amurushkin у тебя всегда центральная точка начальная? )
amurushkin: tutubalin: нет но он к ней тянется. по сути да почти всегда
amurushkin: у меня оценка до центра и островов
amurushkin: вобщем ставить мины и ничего не делать у меня играет лучше чем ходить в тот же ход
BorisZ: может играет роль то что каждое движение обрезает часть вариантов при трекинге - то есть тебя труднее найти
BorisZ: надо будет попробовать что ли
BorisZ: стартовая позиция если и влияет на что-то то то совсем копейки - все нивелирутся перемещениями и прыжкаии
BorisZ: я сделал по науке как ульян учил - ничего не поменялось
Hamibar: Попробовал почаще стоять почти ничего не изменилось.
Hamibar: Но дня 4 назад это работало
metahom: UTG открыли
Uljahn: вроде давно уже
Uljahn: и ботов с контеста ресабмитнули
Uljahn: экспу повторно теперь не дают за промоушены
metahom: ясно. странно что не оповещают про это
Hamibar: в письме было
amurushkin: BorisZ: у меня наоборот от стартового положения разные результаты
BorisZ: я раньше тупо от центра плясал, может от этого не поменялось, недалеко точки то
BorisZ: как правило )
amurushkin: я тоже от центра. сейчас переделал почти как у ульяна. спавнится в других местах но от этого результат меняется у меня
Hamibar: интересно, а влияет ли счет в партии на то, насколько повысят/понизят в рейтинге? или только факт победы поражения важн?
BorisZ: не влияет счет
Hamibar: спасибо
BorisZ: рейтинг трускил - изменение зависит от результата победа проигрыш ничья и рейтинга каждого
BorisZ: может еще какие-то тонкости есть - хз, например первые партии - больше изменение, в конце меньше изменение
Hamibar: Да это и не важно)
wlesavo: все сломал, уф
wlesavo: или не все
Uljahn: костыли и леса ифов сколлапсировали под собственным весом?
wlesavo: но проблем куча таки
wlesavo: типа того, не могу хорошо оценку отладить, она слишком костыльная
wlesavo: надо из нее сделать нормальный эвал какойто
wlesavo: но у меня голова болит от нее уже
wlesavo: ну ладно, вроде эта версия вернулась в топ10
wlesavo: я же всплытия запилил
wlesavo: против Hamibarа какойто лютый винрейт
Hamibar: Ну это частенько так. Против кого-то играет хорошо, а против другого плохо
wlesavo: вообще нплохой сабмит был http://cgstats.magusgeek.com/app/ocean-of-code/wlesavo
Hamibar: я тут подумал, зачем все заряжают на первых ходах торпеду? наверное это не решающий фактор, но торпеда же совсем не нужна на ранних ходах
Uljahn: я уже говорил про это
Uljahn: мне сказали - потом трудно выделить время, чтобы зарядить торпеду
Hamibar: не знаю почему трудно. Обычно ведь активные действия начинаются хода с 30го
Uljahn: захардкодить предлагаешь приоритет торпеды с какого-то хода?
Hamibar: Ну просто поиграться с этим параметром.
Hamibar: Но вряд ли он действительно даст много
Uljahn: я думаю, прибавка будет у тех, кто на мины налегает
Uljahn: а никто не пробовал отсекать на основе пробелов в траектории? как если бы траектория огибала остров?
Hamibar: звучит интересно, но не понятно как это сделать.
Uljahn: т.е. если мы видим пустоту внутри траектории, то предположить, что это суша
Uljahn: миимальный остров вроде 2х2
Jokero: у меня случайно подлодка шарахается, много пустых клеток тоже оставляет
Hamibar: + учитывая, я что все ходят более менее ровными линиями может быть интересно
Uljahn: ну и контрстратегия - эмулировать острова, оставляя пустоты
Uljahn: или симулировать
Uljahn: Automaton2000: симу запилил уже?
Automaton2000: да и в то же время
wlesavo: Uljahn ну вообще я так понимаю еще ни у кого нет приоритезации кандидатов, а отсекать на основе предположений точно нельзя
wlesavo: если и есть то не говорили об этом
wlesavo: у меня в чате включен insert и не могу отключить, что за хрень, при это нигде больше не влючен
Uljahn: ну, я не про полные отсечения имел в виду, конечно, а выбор наиболее перспективного претендента, как в случае с сайленс 0
Hamibar: в этом подходе совсем непонятно как с сайленсом бороться.
Hamibar: Нужен достаточно длинный путь, чтобы понять, какие пустоты - острова
Hamibar: Наверное)
[IQOverflow]Jatana: Правильно ли я понимаю, что первым происходит выстрел, только потом движение лодки?
Hamibar: Это происходит в том порядке, в котором ты команды отдаешь
[IQOverflow]Jatana: ок
Hamibar: можно сначала походить и выстрелить, можно наоборот
Hamibar: можно не ходить после выстрела)
[IQOverflow]Jatana: Но, тогда это будет surface ведь
Hamibar: нет
Hamibar: Each turn you must perform at least one action.
[IQOverflow]Jatana: а
Hamibar: неважно какое это будет действие)
Hamibar: Правда у меня от стояния на месте не улучшился результат
[IQOverflow]Jatana: Насколько я понимаю тут нужно максимально активно действовать
BorisZ: кто бы знал как нужно действовать (
Uljahn: мув даёт заряды, но выдаёт положение, надо балансировать
Hamibar: BorisZ нужно действовать так,чтобы соперник не знал где ты, а ты знал где соперник. Все просто)
BorisZ: ну вот все секреты сразу выдал )
amurushkin: Hamibar: при выстреле врядли хорошо стоять. часто же нужно догонять и постреливать
Hamibar: ну да
Hamibar: Вообще Uljahn правильно сказал,что нужно балансировать.
Hamibar: Просто стоять, когда есть действие не слишком профитно
Hamibar: Но, кажется, что иногда можно и даже будет лучше.
[IQOverflow]Jatana: sonarResult выдает ответ на тот момент когда его использовали, или на момент уже после хода соперника?
Vitaliy_Kamalin: когда использовали
[IQOverflow]Jatana: ок
amurushkin: 24 )) так и тянет сидеть и ждать голду ничего не сабмитить ))
Hamibar: это да, когда около топа сидишь очень не хочется ресамбитать
wlesavo: ну золото еще не скоро
wlesavo: конечно марафон слишком затяжной
wlesavo: недели две было бы в самый раз
amurushkin: а мне норм. я по чуток кодю и не спешу :)
amurushkin: мне нравится когда месяц
Hamibar: ну думаю в золото тоже человек 200 попадет
amurushkin: да не. около 100 будет
wlesavo: зололто фиг с ним, вот в легенду бы хотелось
wlesavo: я еще никуда в легенду не проходил
amurushkin: ну по идее пройдешь. все этому благоприятствует у тебя
amurushkin: я несколько раз во время контестов заходил. один раз даже в топ 50 за что получил ачивку кажется :)
amurushkin: и топ10 по языку кажется брал на джавке
Uljahn: думаю, на питоне в топ-50 можно будет войти, если постараться
Uljahn: всё-таки на гридах плюсовики перебрутфорсят всех
amurushkin: да не будет никто брутфорсить. у меня вон просто тупо циклом не успевает обойти все пути когда их число растет ))
[IQOverflow]Jatana: Почему на один ход всего лишь 50ms, это же очень мало
Hamibar: [IQOverflow]Jatana чтобы плюсовики не забрутфорсили)
amurushkin: эта игра довольно оригинальная получилась. тут никто не понимает какой алгоритм нужен и что делать
Uljahn: 50 мс - это три кадра при 60 fps
[IQOverflow]Jatana: Hamibar Почему не сделать grid побольше
Hamibar: знать бы еще что брутфорсить :grinning:
DenShlk: всеравно она сначала играется, потом показывается
Uljahn: так играет тысяча человек, у каждого бота по сто матчей - 50к матчей
Uljahn: если дольше сделать, сабмиты будут по два часа
DenShlk: ну 100 хотя бы )))
Hamibar: вроде как 50мс не так уж мало.
amurushkin: это стандартно для CG. на других платформах например в RAIC там по 25 вообще если равномерно разделить
Uljahn: на премиум аккаунтах на 10мс больше, говорят
amurushkin: а еще можно докупить по 20мс на 1000 игр
DenShlk: тут есть премиум аккаунты?))
Uljahn: тут и стримеры свои есть
DenShlk: ну про стримеров я знаю
Uljahn: про премиум - это шутка, в общаке угорали
[IQOverflow]Jatana: Как тут правильно время замерять?
Uljahn: после первого инпута
[IQOverflow]Jatana: clock() правильное время показывает?
Uljahn: язык?
[IQOverflow]Jatana: C++
Uljahn: chrono вроде юзают
Vitaliy_Kamalin: А кстати, насчет 50мс. У меня по логам 10-100мс на ход уходит и чет как-то тихо
Vitaliy_Kamalin: на первый ход вообще втрое больше затрачиваю и всё работает. Время вообще учитывается?
Hamibar: ты после первого инпута считаешь?
[IQOverflow]Jatana: После бронзовой лиги, будет в правила что-нибудь добавляться?
wlesavo: нет
Hamibar: кстати, сейчас понял, что после саленса можно 2 луча отсекать. 1й в ход сайленса, противоположный предыдущему направлению. А второй луч на след мув. Противоположный ему.
Hamibar: Надо бы додумать эту идею
Hamibar: И похоже,что после сайленса, наиболее хорошая стратегия идти в том же направлении, что и до сайленса