Chat:Ru/2020-04-01

From CG community
Jump to navigation Jump to search

WwW: как узнать процент побед от общего исла боев?

735487: WwW: http://cgstats.magusgeek.com/app/ocean-of-code/WwW

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

Hamibar: У меня хорошо

Hamibar: Долгий конечно контест. Еще 2/3 а уже не очень хочется что-то дописывать.

Uljahn: хорошо тебе - в голду пройдёшь изи

Default avatar.png Alex.swift: Uljahn а ты уже забросил? Ласт сабмит 27

Hamibar: Uljahn а хочется то в легу. Просто нужно передохнуть недельку.

Hamibar: Alex.swift видимо такую вундервафлю готовит, что никто не будет в состоянии с ней сражаться.

BorisZ: Hamibar после перерыва почти наверняка забросишь

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

BorisZ: рафакторить

Hamibar: Это можно да.

Hamibar: Мб карантин не отметят и будет еще 1 марафон)

BorisZ: то что не отменят - это к бабке не ходи, недели явно мало

Hamibar: На все лето контест запустят.:upside_down:

Uljahn: Alex.swift: может ещё попилю, время есть

amurushkin: Hamibar у нас с тобой 0.03 разница :)

Uljahn: на плюсах наверное куча времени остаётся

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

Uljahn: надо хотя бы на 6 клеток смотреть

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

amurushkin: у меня у одного cg глючит да?

wlesavo: amurushkin похоже да

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

Uljahn: скорее всего у прова перегрузки и где-то пакеты дропаются

Uljahn: попингуй серваки

amurushkin: у них похоже закрыты пинги

Uljahn: в смысле icmp протокол блочится?

Uljahn: норм первоапрельская шутка в cheat engine ахах

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

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

amurushkin: а теперь помогает?

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

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

wlesavo: мистика

MadKnight: amurushkin помнишь Code of Kutulu ?)

wlesavo: ладно, пожалуй сабмитну

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

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

BorisZ: надо было сначала старый код сабмитнуть повторно

BorisZ: а то сейчас сравнение не корректное

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

BorisZ: подумаешь что стало хуже а на самом деле стало лучше - просто уехал бот по таблице в верх или вниз

wlesavo: не, хуже не стало точно уже

BorisZ: в зависимости от таго, кто из врагов чаце сабмитил - кому ты сливаешь или кого делаешь

wlesavo: ну кстати спасибо за идею простой оценки

wlesavo: ох под конец винстрик словил, в топ 3 закинуло

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

Uljahn: на уровне второго места, круто

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

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

amurushkin: MadKnight помню

wlesavo: хм, против симана 9/6, неплохо

wlesavo: 0.07 от первого места)

wlesavo: опа, топ 1

wlesavo: винстрик в 10 побед от ресабмита кови и eulera

BorisZ: wlesavo красавец

wlesavo: не без твоего участия)

MadKnight: amurushkin какой алгоритм у тебя там был?

tutubalin: ого! молодец!

tutubalin: на питоне порвал сишников

wlesavo: я прям доволен, не ожидал совсем

Default avatar.png Alex.swift: :muscle_tone1:

metahom: круто. теперь там и оставайся

wlesavo: ну еще точно есть что улучшать

MadKnight: tutubalin а у тебя что было в CoK ?

YurkovAS: озвучивали простые оценочные? можете подсказать?

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

wlesavo: у меня получается по 3мс на оценку выделено, путей 50-60 генерирует и этого хватает

YurkovAS: wlesavo пути на 1 возможный ход (глубину)? у меня кроме урона (хотя стреляю только за себя) еще разница в кол-ве возможных местоположений моих и противника

YurkovAS: по времени работы в среднем 0мс на с++ и макс 15мс просадки

wlesavo: YurkovAS не, на глубину 15-20 либо пока в тупик не зайдешь, и смотреть например среди самых длинных минимальный урон от мин

YurkovAS: wlesavo если мины прикрутить, какой примерно апп ожидать? например с 100 места.

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

YurkovAS: wlesavo спасибо! у меня сейчас минимакс 1 (глубина). надо будет проверить потом.

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

735487: MadKnight: amurushkin какой алгоритм у тебя там был? миник кажется на глубину 2. что то типа того

735487: wlesavo: это тебя генерация пути вывела на 1 место?

wlesavo: amurushkin да, ну плюс я баг в минах убрал

wlesavo: не знаю на сколько он значимый был

wlesavo: но по реплей surface срабатывает когда надо

735487: YurkovAS: у меня с минами без детекта мин противника и недоделанным отсечением сайленса у противника до 15 добегает редко. чаще в 20-30 добегает только так. так что в топ 50 с запасом

wlesavo: по реплеям

xoposhiy: А расскажите, что значит "смотреть минимальный урон у мин"? Не понятно :)

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

xoposhiy: ага, понятнее стало.

xoposhiy: А сколько в худшем у тебя бывает позиций противников трекается?

xoposhiy: какой там порядок получается?


xoposhiy: Я просто отсекаю всю историю дальше двух сайлентов и мины пока вообще не трекаю. И пытаюсь понять, за что первым делом стоит взяться :)

wlesavo: в начальные моменты времени под 190, но реально быстро спускается до +- 20

wlesavo: первым делом хороший трекер

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

xoposhiy: что-то не понятно, как это. Мины в перемешку с сайлентами должны экспоненциально раздувать количество же

wlesavo: историю мин не обязательно

amurushkin: у меня когда много сайленсов подымается до 400к )) но у меня там отсечения плохие поэтому я сжимаю пути когда их становится больше 20к

amurushkin: а прикрутить историю где был противник пока руки крюки. код не работает )))))

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

xoposhiy: если они в одну точку придут по разным траекториям то и мины будут в разных местах и путь разный. Как их мерджить то?

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

735487: я сейчас вообще тупо 1 путь выбираю первый в списке а осталные откидываю

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

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

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

amurushkin: а т.е у тебя типа общий ствол остается а ветки отбрасываются?

amurushkin: по типу логического И делаешь?

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

xoposhiy: То есть вот в такой картинке у тебя общего пути вообще не будет? https://awwapp.com/b/ue5ugea6u/#

xoposhiy: видимо, такие ситуации не часто встречаются просто, да?

Uljahn: скорее всего, будут часто встречаться в леге

wlesavo: xoposhiy да

wlesavo: ну как, будут две точки общие

Uljahn: чё за антикиллер? у тебя баг в фаталити был?

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

wlesavo: а он на шару стрельнул

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

wlesavo: изи топ1)

Uljahn: воу

amurushkin: молодец. выходит ты крутой алгоритм придумал и хорошо его реализовал

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

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

wlesavo: но винрейты прям огонь http://cgstats.magusgeek.com/app/ocean-of-code/wlesavo

Uljahn: придерживать - это топ страта

Uljahn: amurushkin: хорошо реализовал - это без багов?))

amurushkin: прямо порекал всех

amurushkin: Uljahn ага без багов да и идея классная

wlesavo: прикол что перед этим был сабмит где-то с 10ю таймаутами и он топ 2 забрался

wlesavo: так что да, хорошо реализовал это баг один подчистил)

metahom: wlesavo, ты по сколько часов в день на контест тратишь?

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

wlesavo: позавчера например вообще ни строчки

wlesavo: а вчера все что написал пришлось откатить

metahom: прикольно. я думал ты на выходной неделе

wlesavo: ну я как бы на ней, но работа тоже есть какая-то

wlesavo: но я ее почти не работаю сейчас

MadKnight: amurushkin а как ты туда миник запилил когда игрокам надо вместе бегать чтобы не терять sanity ?

metahom: ясно

metahom: ну все равно неплохо. еще бы додержался :)

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

amurushkin: MadKnight я их против себя делал

amurushkin: но вообще у меня там не такие хорошие результаты были

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

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

Automaton2000: сертификаты забыли обновить, пришлось в дискорд залазить

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

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

Uljahn: да

Uljahn: коротких - это обычных 10-дневных?

Uljahn: да даже и в спринте на 4 часа вроде были деревья

wlesavo: ну да, обычных

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

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

Uljahn: в поворятах

Uljahn: почему не дают возможность сразу с бронзы начинать...

735487: чтобы заработал 150 опыта на вуде ))

Uljahn: больше нервов потратишь

BorisZ: чтобы не отпугивать неофитов

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

BorisZ: простые правила - написал что-то - всех порвал - подкрепление - зависимость

Uljahn: смотрю, несколько топовых игроков застряли таки в вуде, в т.ч. miklla и oreshnik

wlesavo: микла только начал вроде

wlesavo: его ж не пускало в контест

wlesavo: если я не путаю

Uljahn: угу

Uljahn: отмаза засчитывается

Uljahn: эх, так и придётся что-то кодить, чтобы в голду пройти

735487: Uljahn: бери пример с wlesavo. он доказал что можно в топ :)

Uljahn: дак смысла нет доказывать то, что уже доказано :smirk:

735487: а повторить?

Uljahn: я лучше идей покидаю в чатик

Uljahn: как кубер)

735487: есть идеи почему я не могу добавить массив 15 на 15 в структуру к точке?

Uljahn: в плюсах?

735487: блин так неохота переписывать на new и везде править ))

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

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

Uljahn: *район

Uljahn: детект мин рулит

wlesavo: ну так он отсек эту мину

Uljahn: угу, это топ страта

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

Uljahn: и в угол его загонять

735487: в шахматном порядке полюбому все покроет )))

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

Uljahn: с минами можно как с сайленсом сделать - чтобы придерживал и не ставил в неудачных местах

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

735487: вот у меня придерживает. я не уверен что это хорошо

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

wlesavo: с полными зарядами на всем

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

Uljahn: +

Uljahn: для этого надо наперёд симулировать траектории

Uljahn: планировщик заданий мне запили, Automaton2000

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

Automaton2000: я не знаю что у меня уже есть

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

wlesavo: это вариант

Uljahn: я так и предлагал, когда про 6 ходов вперёд говорил

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

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

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

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

Uljahn: а

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

wlesavo: но тут уже вопрос перфоманса

Uljahn: с точки зрения противника надо оценивать

wlesavo: ну я об этом как раз

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

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

Uljahn: https://www.codingame.com/replay/444204817

Uljahn: лол

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

wlesavo: лол

wlesavo: топ 1 который мы заслужили

Uljahn: нет кода - нет багов, но и рейтинг не очень)

wlesavo: https://www.codingame.com/share-replay/444429059

MadKnight: wlesavo как успехи?

Uljahn: странное плавание

Uljahn: так в начале хорошо шёл

Uljahn: а с 60-го хода обезумел

Uljahn: в смысле, фрейма

wlesavo: Uljahn глубины не достаточно чтобы не отрезать путь

wlesavo: но я решил что лучше больше ролаутов на относительно короткую глубину

wlesavo: MadKnight топ 1 :slight_smile:

MadKnight: ух

MadKnight: wlesavo топ 1 в легенде?)

Uljahn: да уж, в леге дай бог в топ-20 удержаться

wlesavo: ну серебро только, но всетаки

Uljahn: за 18 дней напилят переборов на плюсах

Uljahn: на axv

Uljahn: или нейронок натренят

MadKnight: Uljahn а ты что запилил?

wlesavo: да скоро вымету метлой

wlesavo: а, это обычный таймаут был, фуф, чуть за рамки вышел

MadKnight: а двойные команды почему?

wlesavo: MadKnight баг визуализатора

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

Arkus: мне может кто нибудь объяснить куда впихивать этот чёртов буст?

Arkus: всем прувет

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

Arkus: https://www.codingame.com/ide/puzzle/coders-strike-back

Arkus: BorisZ в этих гоночках...

BorisZ: там вроде один буст на всю игру, ставь первым ходом - не сильно плохо будет

Arkus: проблема в том, чтобы определить, где ентот первый ход

Arkus: там же while

BorisZ: перед while добавь счетчик = 0, в цикле на 1 увеличивай

Arkus: вроде бы выиграл...

BorisZ: Arkus сейчас идет соревнование https://www.codingame.com/contests/ocean-of-code все в него играют, старые игры потом успеешь

Alex.swift: а как вы хендлите ситуацию когда по врагу был сделан удар, потом он сделал сайленс и нанесенный урон оказался реально >0? Просто он после сайленса может еще выстрелить и попасть в себя и это сильно запутывает детект т. к. этот урон мог быть нанесен и до и после

BorisZ: у меня пока упрощенно - если и враг стрелял и я то не обрезаю ничего (

BorisZ: тоже думал помню над этим - мозги вскипели, плюнул

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

735487: http://chat.codingame.com/pastebin/9ae89b61-52ae-41dc-88e6-5c62c73f0c03

Alex.swift: о, спасибо

wlesavo: не, этот способ тоже не учитывает

wlesavo: я просто не отрезаю тоже

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

Alex.swift: т. е. тоже не учитываешь если и враг тоже стрелял?

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

wlesavo: для остальных учитываю

BorisZ: amurushkin это все правильно для взрывов ДО перемещения врага

wlesavo: это все правильно если ты учитываешь полный путь

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

Alex.swift: да, вот как после сайленса считать. Просто мув в принципе еще можно если добавить позиции и до и после взрыва

Valdemar: Alex.swift я в ячейки урон записываю, вроде всегда работает

wlesavo: не должно, точно не теряешь так?

Alex.swift: даже в описанном кейсе что враг сделал сайленс а потом стрельнул в себя?

Valdemar: да

MadKnight: o, Valdemar

MadKnight: чё пилишь?

Valdemar: я храню все возможные позиции врага и сколько он получил урона в каждой позиции получил

Valdemar: MadKnight привет, перебор хода делаю

MadKnight: перебираешь что конкретно?

Valdemar: всякие прыжки на добивания

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

Valdemar: не думаю, что это надо прямо сейчас, но просто интересно) и выглядит эффектно

Valdemar: так то мины больше пользы принесут, но мне пока и в топ50 нормально

Alex.swift: wlesavo пытаюсь это все представить. Т. е. у тебя есть на конец хода, например, 10 новых возможных путей и враг получил 2 урона. Дальше нужно отсеять те пути, при которых враг в сумме получил бы другое количество урона?

Alex.swift: идея вроде понятна, но выходит прийдется все-таки сначала имплементить сохранение всех путей(

Valdemar: это не так много

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

Valdemar: я тоже боялся, но обычно в играх 1-2 тысячи состояний. Часто состояния до 1-10 схлопываются

wlesavo: Alex.swift ну да, в порядке действий каждому кандидату пишешь урон

Valdemar: у меня также сделано

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

Alex.swift: понял, спасибо. Буду дальше бота ломать

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

BorisZ: у всех уже продвинутые трекинги, у меня до сих пор по деревенски - конечные точки просто (

BorisZ: начнешь апгрейдить - все поломается, знаем плавали

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

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