Chat:Ru/2022-05-02
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: Спасибо)