Chat:Ru/2022-05-02

From CG community
Jump to navigation Jump to search

BorisZ: Valdemar топ 1 монстр:muscle:

BorisZ: так-то игра камень ножницы бумага

BorisZ: разные стратегии, одни тебя бьют, других ты бьешь

BorisZ: никто сильно не оторвется от остальных, итересная концовка будет

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

BorisZ: если он выходит на позицию и с мобами везет то забивает 3 гола сразу

BorisZ: ну и если ему не забьют до этого

BorisZ: и это все из тумана, то есть даже не защититься если специально не затачиваться

Valdemar: BorisZ не ожидал, думал в топ-10 закрепиться против пары человек из топ-10 винрейт 15%, но остальных видимо хорошо бьет

BorisZ: успел сабмитнуть в последнюю минуту )

BorisZ: сейчас все меня будут ждать (

a1.dk: не только тебя ^_^

BorisZ: a1.dk а ты в леге?

a1.dk: не успел атаку прикрутить к боту застрял во верхнем золоте, посмотрим как сейчас забалансит

tiraptor: а сейчас будут досчитываться до конца? Или там сразу переигровки начнутся. Переигровки с нуля начинаются или с текущей позиции?

BorisZ: ну да вобще-то, если из золота кто-то выйдет сейчас то все его будут ждать

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

BorisZ: а потом еще отдельно легенда в районе 1000 боев

BorisZ: для всех уже

tiraptor: Ага, понял)

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

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

BorisZ: вдруг он до леги тоже дойдет фиг знает

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

Empted: не очень понял, сделал сабмит кода и мне дало ранк, который был в начале калибровки. что-то поменяется?

BorisZ: до конца твоя порция игр должна доиграться - сколько там положено для твоей лиги

Empted: ага, спасибо

wlesavo: BorisZ грац с легендой)

aangairbender: Valdemar держу за тебя кулаки!

Valdemar: aangairbender :slight_smile: я надеюсь на топ-10 для ачивки

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

wlesavo: да, неплохо зашел)

Valdemar: а то там защита с голды не менялась и предсказание противника вида "пойдет к ближайшему жуку"

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

aangairbender: И соответственно можно отсекать часть дуги в которой нет мобов

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

aangairbender: жаль в этот раз времени не было нормально поучавствовать

wlesavo: https://www.codingame.com/profile/2697bac58257106ef057fd1d9c899f9a777765

wlesavo: ой

Valdemar: aangairbender так мобы же идут всегда в одном направлении

aangairbender: взламывание сида это читерство)

wlesavo: https://forum.codingame.com/t/spring-challenge-2022-feedbacks-strategies/195736/2

aangairbender: Valdemar я имею в виду что сначала моб идет в любом направлении от -75 градусов до +75, такая вот дуга, можно идти в самую опасную точку єтой дуги

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

Valdemar: а, понял думал симулировать спавн в каком-то направлении, но потом забил симметрия проще и дает 100% информацию о положениях жуков

Valdemar: у них еще id в одном и том же порядке генерируются, поэтому совсем удобно

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

aangairbender: позже доведу до ума и попробую

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

FeZar97: так эта система ломается если враг контролит/сдувает недавно заспавненного паука

aangairbender: я проверяю что паук все еще идет по неизмененной траектории

aangairbender: и отсутствию паука в другом спаунере не особо верю (враг мог его убить)

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

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

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

FeZar97: по итогу впустую слил пол дня на попытку сделать что то похожее и потерпел фиаско)

aangairbender: Valdemar гратс

Valdemar: FeZar97 в легенде у gaha такая стратегия, топы ее контрят выдувая нападающих

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

Valdemar: aangairbender еще полный пересчет, так что пока рано)

aangairbender: окей, тогда пока отменяю гратс

aangairbender: :joy:

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

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

Valdemar: по крайней мере пушеры в 3 ветра, у которых стоит иф "все в одной точке, начинаем пуш" проигрывают сразу как только начинаешь контролем уводить нападающих

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

Valdemar: легенда ровно 400 человек)

ilt: у меня где-то багал блок с навешиванием щитов паукам около чужой базы

ilt: смотрю с этой штукой намного было бы лучше

ilt: вчера не сообразил это добавить

ilt: простой иф по сути

Valdemar: на самом деле нет - щит это трата маны, которой может не хватить на защиту, например

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

aropan: О, а это уже финальный запустили? Как-то быстро, не будут ждать перехода из нижних лиг?

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

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

aangairbender: а блин еще ретест(

Vitaliy_Kamalin: 22 место в золоте ((((((

aropan: Поднять щиты за Valdemar.

Valdemar: Похоже это был рандом, бот уже на 10 место спустился не выдерживает напора топов)

Valdemar: Надеюсь хоть одежду заработает)

ilt: интересно у gaha эвристики?

ilt: если рандом в его пользу он сносит почти всех

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

wlesavo: Valdemar грац, футболочка зато :slight_smile:

YurkovAS: Valdemar :thumbsup: :tada:

kurnevsky: А они пересчет делают с 0, или все игры до пересчета тоже засчитываются?

wlesavo: все засчитывается

kurnevsky: Тогда зря я делал последний ресабмит :)

kurnevsky: После плохого мтпрта оказался на ~40 месте вместо ~20.

kurnevsky: *старта

kurnevsky: А шанс выигрыша не сильно отличается при игре с высоким рейтом или низким. Впрочем, 40 место вполне заслужено.

kurnevsky: Зафейлился с симуляцией, а на if-else мотивации уже не хватило :)

CyberEcho: А кто вообще делал симуляцию?

kurnevsky: У меня вполне рабочая симуляция защиты, но вот с атакой как-то не сработало :)

CyberEcho: С учетом чужих героев?

kurnevsky: Ага.

kurnevsky: На атаке из-за тумана войны не супер хорошие результаты были.

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

aangairbender: а скоро разблокируют остальные соревнования? а то я не могу зайти в ide

wlesavo: kurnevsky у меня ровно наоборот, защита так и не завелась, а атака на симе норм)

kurnevsky: У тебя, видимо, mcts :)

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

kurnevsky: У меня минимакс, который при пропадании врагов из зоны видимости считал, что самым эффективным будет просто пнуть ветром или подождать.

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

kurnevsky: Так это то же самое, что когда его нет.

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

kurnevsky: *не видно

kurnevsky: Глубина ~16.

wlesavo: ого

kurnevsky: Но только в этом случае он считал, что можно подождать, и пауки сами добегут до базы :)

wlesavo: это с прунингом каким-то эффективным?

wlesavo: kurnevsky так надо было бонус большой повесить за добегание раньше

kurnevsky: Тогда просто пинали ветром, а противник отпинывал обратно :)

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

kurnevsky: 16 - это ходов per player.

kurnevsky: 8 дней всего.

wlesavo: все-равно много как-то

kurnevsky: И это с одним защитником.

kurnevsky: С 2 было ~8, насколько помню.

kurnevsky: Ходы не все рассматривал, да.

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

CyberEcho: А как вы позиции оценивали в симуляции?

kurnevsky: Я не придумал хорошего случайного доигрывания для mcts, а для минисакса оценка очевидна - сумма расстояний 3 ближайших пауков до базы.

kurnevsky: (включая уже дошедших)

CyberEcho: Но ведь если с пауком рядом окажется чужой герой, то это должно резко ухудшать оценку позиции.

kurnevsky: (и если еще точнее - сумма корней)

kurnevsky: Это решается глубиной просчета :)

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

aangairbender: kurnevsky ты ж на расте пишешь? как вообще всякие мктс нормально пишутся? без рефселл?

CyberEcho: И если паук под щитом и без, то это тоже большая разница

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

wlesavo: ну да, за щит тоже бонус или штраф

kurnevsky: У меня сначала был щит в оценке, но потом выпилил.

kurnevsky: Толку не было :)

kurnevsky: @aangairbender да, и вообще никаких проблем с mcts :)

kurnevsky: Просто дети в Vec хранятся, и все.

aangairbender: я последнее время очень метаюсь между растом и плюсами.

aangairbender: Дети в Vec - значит аллокация в рантайме?

wlesavo: mcts можно было тоже сделать с EPT но там отнормироваать сложно больно оценку

kurnevsky: А как в mcts без аллокации в рантайме? :)

aangairbender: создаешь огромный массив нод и потом просто хранишь индекс первого ребенка и количество детей

kurnevsky: Ну так так же и на расте тогда можно.

aangairbender: на расте через индексы не трушно)

kurnevsky: Ну и смысла от аллокация избавляться нет - не в них основные проблемы :)

aangairbender: kurnevsky а почему именно раст? в чем для тебя преимущество над другими языками?

kurnevsky: Работу я делаю на скале :)

aangairbender: я вообще работаю на котлине, а контесты на расте/плюсах/шарпе

tutubalin: а вот как дерево на следующий ход передавать?

kurnevsky: Раст - новый хорошо спроектированный язык, с кучей плюшек и без легаси.

tutubalin: там же надо одну веточку оставить, а остальное освободить. а остальное - это дерево с нелинейной структорой

wlesavo: зачем освобождать?

tutubalin: а куда новое дерево рисовать?

wlesavo: рут переместить и все же

wlesavo: дерево оставить

tutubalin: так а новые данные куда писать?

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

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

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

tutubalin: много-то много, но тоже не бесконечно

kurnevsky: > слабей компайл тайм вычисления

Не уверен, там вон числа пеано на макросах делают с последующей арифметикой :)

wlesavo: ну дошел до 2кк обнулил, первые уже наверняка не нужны

kurnevsky: > работа с неинициализированными данными

Нафиг надо, мне мои ноги еще нужны :)

aangairbender: зато позволяет добится +10% к кол-ву симуляций

kurnevsky: Я бы не был столь уверен, что действительно позволяет :)

kurnevsky: Именно использование неинициалищированной памяти.

kurnevsky: Ну и 10% симуляций после определенного порога почти никак не скажутся на игре.

kurnevsky: А вот непонятных багов вполне рискуешь огрести, и потерять кучу времени на них.

aangairbender: тоже верно)

kurnevsky: Ни в прошлом ни в этом контесте увеличение количества симуляций для меня ничего не изменило бы :)

kurnevsky: > speed doesn't matter, I ended up on top 4 with average turn time: 0.03ms

kurnevsky: Еще из английского чатика как раз в тему :)

Xyze: здравствуйте еще раз

Xyze: а пересчета не будет?

Xyze: чета фигово мне после 20 часового марафона

wlesavo: Xyze был уже)

wlesavo: быстро достаточно закончился

Xyze: а, нифига

Xyze: я просто только проснулся

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

Xyze: блин, обидно что Вальдемара из топ 10 выкинули

Xyze: а мне 5 мест до футболки осталось

Xyze: короче мне лучший профит в игре дала оценка защитника, которую я как-то случайно заставил красиво играть

Xyze: основные фичи - линейно-квадратичная зависимость от расстояний (моб, база) (я, моб)

aangairbender: kurnevsky а ты как пишешь? в иде на сайте?

kurnevsky: В емаксе локально :)

aangairbender: в нескольких файлах или в одном?)

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

kurnevsky: В одном.

aangairbender: ой

kurnevsky: Неудобно, но мержить каждый раз не хочется.

aangairbender: я пишу в vscode в нормальном cargo проекте, а потом в один файлик тулзой компоную

aangairbender: оно автоматом просходит на билд успешный (и результат в буфер обмена идет)

kurnevsky: Самописная тулза? :)

aangairbender: не, какой-то npm пакет, нагуглил по первой ссылке

aangairbender: а в буфер обмена уже свой скрипт

aangairbender: у меня своя тулза для шарпа есть и плюсов

aangairbender: а вот раст пока импользую чужую

kurnevsky: @Xyze атака тоже с этой оценкой?

Xyze: с похожей, но нет

Xyze: в атаке нельзя квадратичную зависимость делать

Xyze: а то он начинаешь пушить все что движется

Xyze: не хватило уже фич на самом деле для нормальной атаки

Xyze: ни трекинга, ни симметрии не успел сделать

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

kurnevsky: Ни взлома rng :)

Xyze: дааааа, было время

Xyze: и рандом джавы брутфорсили

kurnevsky: Так это и сейчас сделали :)

aangairbender: дак первый пост на форуме этого соревнования - это способ брута сида

kurnevsky: В постмортемах первый пост.

Xyze: а, я в танке, не читал

Xyze: ща гляну

aangairbender: считаю подобное читерством)

Xyze: я тоже сказу об этом подумал на самом деле

CyberEcho: А кто там rng взломал?

Xyze: это еще в code4life показали

Xyze: и код был прям готовый

kurnevsky: В codingame не додумались крипто-rng заюзать...

aangairbender: может если хайп поднимут, но на следующий раз сделают)

Xyze: он 150, вряд ли

Xyze: в коде4лайв чел был из топ 10

Xyze: и тоже ничего

Xyze: хотя он не вышел потом в мультиплеер

CyberEcho: Посмотрел, ну если он на самом деле восстанавливает seed по 6 приблизительным double-ам, то это впечатляет конечно.

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

TheCrucial: а когда результаты объявят

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

aangairbender: я уже pokerchiprace пишу:sweat_smile:

aangairbender: сейчас топ 53 легенды из 58, хочу в топ

CyberEcho: Легенда и впрям на глазах редеет, уже 390 участников :upside_down:

Uljahn: "FYI, we have removed 10 bots from the Legend league: 5 bots from the Inetum team which had the same code, 5 alts from Legend league players"

CyberEcho: Правда на месте это вообще не сказалось. Похоже эти боты были в самом конце легенды.

AntonBlockchain: что-то глюкнуло что это? Oups An error occurred (#73): "Only 1 executor running at the same time for a test session"

kurnevsky: Так вот почему все так медленно было :)

Uljahn: это бага на CG, админы в курсе и фиксят

YurkovAS: заработало

YurkovAS: *частично: бои идут, а рейтинг не обновляется

AntonBlockchain: Спасибо)