Chat:Ru/2020-11-22

From CG community
Jump to navigation Jump to search

BorisZ: 23 часа до конца а в списке уже 8 фич которые надо сделать

BorisZ: и все такое вкусное

BorisZ: и пока одну фичу пилишь - новые в голову приходят

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

wlesavo: поэтому надо не в последнее восресенье начинать :slight_smile:

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

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

wlesavo: а, ну тогда норм, я думал ты подзабил :slight_smile:

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

BorisZ: там дофига всяких тонкостей к бабке не ходи

wlesavo: я один раз делал в 2048, но да какой-никакой опыт

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

wlesavo: я последние игры 3-4 оптимизации делал, а тут игра как раз почти как оптимизация такая, так-что отчасти повезло еще

wlesavo: но вообще лега уже 50 человек, ниче так, блтже к концу наверное примерно как в корабликах будет уже

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

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

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

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

wlesavo: BorisZ а на каком ты сейчас этапе примерно?

wlesavo: сима есть?

735487: если есть сима то бимсерч за 10-15 минут делается

wlesavo: это в зависимости от того какая архитектур еще

BorisZ: сейчас у меня просто монтекарло

wlesavo: и не хватает на голду?

wlesavo: а спелы учишь в симе?

BorisZ: план сейчас - бфс на небольшую глубину а потом монтекарло из каждой ноды

wlesavo: погоди этого на голду должно хватать если со спелами

BorisZ: спел только нижний, лбой спелл был, но баги замучали - оключил нафиг

Uljahn: он в голде уже, вроде

BorisZ: да в голде

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

wlesavo: а

wlesavo: на легенду тогда у меня лайфхаков нет

Uljahn: ~a, Automaton2000

Automaton2000: automaton2000: то ты бы тоже фетишами увлекался?

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

BorisZ: + 1 фича в списке фич )

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

BorisZ: ну и не дает мне покоя питон в леге - что он такое умное придумал то?

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

wlesavo: но видимо еще эвристики хорошие

735487: wlesavo: держи лайфхак, спасибо сейчас попробую что выйдет :)

735487: выглядит хуже в моем случае

kreo: То чувство, когда увидел в чате "бимсёрч", загуглил что это, написал на коленке за 15 минут и поднялся на 80 мест в своей голде

Xyze: ох ну вы и байтите ))

Xyze: тоже чтоль попробовать

kreo: Ну если у тебя страта норм, то может стать хуже. Однако это не мой случай :))

MadKnight: amurushkin ты хотел сказать - выглядит Xyze ?)

Xyze: =)

Xyze: ох уж эта игра слов

ilgiocatore: а что вы делаете с соперником в вашем этом бимсерче?) ищете лучший ход соперника и играете по нему?

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

ilgiocatore: ну без соперника можно и брутфорсом перебрать почти с той же эффективностью по идее

MadKnight: ilgiocatore бимсёрч не заточен под противника

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

MadKnight: так бимсёрч и есть брутфорс

MadKnight: только который пропускает некоторые ветки

ilgiocatore: ну если не считать соперника, то надо в оценку как-то закладывать

MadKnight: как ты в оценку заложишь неправильно предсказанное будущее?

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

ilgiocatore: типа чем быстрее, тем надежнее

MadKnight: а, я так же делал

MadKnight: ещё с первой версии

Xyze: я пробовал не делить прям, а отгрызать по 10% за 1 глубину

Xyze: и стало хуже

Xyze: хз как вы сделали это лучше

ilgiocatore: ну я тоже разные формулы пробовал, в итоге мне надоело и я пошёл mcts пилить

ilgiocatore: а mcts пока что играет хуже, чем бот с эвристикой

ilgiocatore: так что я наверное вернусь к магии

Xyze: магия эт хорошо

ilgiocatore: бимсерч по описанию выглядит вроде легко

ilgiocatore: только для него же еще больше магии надо придумывать

ilgiocatore: нужна какая-то промежуточная оценка

BorisZ: да, нужно оценивать состояние как-то когда до зелья еще далеко

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

ilgiocatore: ну дубликаты я с самых первых версий удалял в брутфорсе

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

Xyze: http://chat.codingame.com/pastebin/c440639f-995b-49dc-81e9-2db010375416

eXhaustedUA: спасибо, но у меня не плюсы(

Xyze: пихай в самое начало и будет оптимизация

Xyze: ааа )

BorisZ: #pragma GCC optimize "O3,omit-frame-pointer,inline"

Xyze: а какой язык?

eXhaustedUA: свифт

Xyze: тут Release только на некоторых стоит языках

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

Xyze: а ты бфс насколько глубоко ищещь?

Xyze: до крафта банки?

eXhaustedUA: да

eXhaustedUA: ну ~1500 состояний == 50 мс

eXhaustedUA: в релизной сборке проходит за 10

ilgiocatore: у меня 15к состояний на плюсах успевается в среднем

Xyze: ну смотри, я когда учил 8 спелов, то есть 12 с базовыми, брутфорс на 4 берется изи без прагм на плюсах

Xyze: где то 10 мс

Xyze: и с таким количеством спелов в реднем крафт за 4-5 ходов

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

Xyze: даже если не нашел её крафт

Xyze: это тебя спасет

eXhaustedUA: так и делаю

eXhaustedUA: просто не могу придумать куда дальше двигаться, ибо упираюсь по времени)

Xyze: одинаковые состояния режешь?

eXhaustedUA: да

Xyze: ну если все базовые вещи сделал, надо новые фичи

eXhaustedUA: ну пойду читать про бимсёрч тогда))

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

BorisZ: wlesavo а если у оппонента на руках уже камней на банку - ты эту банку из перебора убираешь?

BorisZ: ты говорил что заглядывать вперед за оппа смысла нет, но на 0 ходов то ведь можно )

Xyze: рискованно

NightLuna: заглядывать смысла нет? даже для концовки?

Xyze: он может её не взять

ilgiocatore: мне кажется, что смысл есть, просто это разные тактики

ilgiocatore: часто например можно не варить зелье сразу, если опп всё равно его не сможет сварить

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

BorisZ: для концовки то есть, я про среднюю стадию

NightLuna: ну ладно. а то я пыталаюсь концовку осилить, пока не очень

BorisZ: у меня тоже такое не взлетело, враг не то варит (

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

BorisZ: ну может в каких-то хитрых ситуациях

NightLuna: мне кажется в легенде будет челове 80, ну может 90 максимум

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

BorisZ: Hoggins утешься тем что 6 тыс человек справились еще хуже

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

BorisZ: тренировки )

Hoggins: да, я внимательно считаю общее количество участников :)

Hamibar: питон в леге :scream:

Hamibar: надеюсь в мульти выложат

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

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

BorisZ: иногда допиливают что-то, но не радикально

Hamibar: ну вроде раик обещает быть интересным

BorisZ: помню что в ice & fire поменяли цены некоторые, там золотые шахты были дорогие слишком - никто не юзал

Hamibar: ну это изменение баланса все таки не правил

BorisZ: это да, им надо чтобы не сломались боты с контеста

Hamibar: так что вряд-ли можно будет кого-то палкой стукнуть. Но даже в таком виде можно неспешно поиграть

_Lion_: привет как отправить друзей в дискорд

_Lion_: :thinking:

_Lion_: есть кто в сети

BorisZ: я в сети, но не понимаю вопрос, поэтому молчу (

_Lion_: как сделать человека другом в дискорде

_Lion_: BoriZ у тебя есть профиль в дискорде

BorisZ: правой кнопкой по иконке - добавить в друзья

BorisZ: есть но я там только чат КГ читаю

BorisZ: так что я плохой проводник по дискорду (

_Lion_: жаль

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

Xyze: слушайте, а кто-то запрещал в симе больше N мультикастов?

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

wlesavo: и вообще всегда кастую максимальное колисчество

NightLuna: прям всегда всегда?

Xyze: ага

Xyze: у меня чет стояло ограничение на х3

Xyze: я его снял

Xyze: как будто стало лучше

Xyze: но я не помню зачем оно мне

Xyze: решил у вас узнать )

NightLuna: может, чтобы меньше перебирать?

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

wlesavo: ну и сужает поиск да

Xyze: не, меньше перебирать мне не интересно

Xyze: наоборот я себе что-т оотрезал этим

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

Xyze: наверное надо повесить его только на каст тир4 элементов

wlesavo: в локальные максимумы всмыссле

Xyze: потому что попасть в 10 желтых и проиграть - классека

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

wlesavo: что не исключчено но редко

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

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

wlesavo: может у меня ширины не хватает чтобы это хорошо играло

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

NightLuna: судя по всему надо

NightLuna: иначе как выбрать

wlesavo: ну либо сортировать либо в pq хранить, что-то делать надо конечно

NightLuna: нужна какая-то убер хорошая оценочная...

NightLuna: и без бимсерча нужна =(

Xyze: жиза

Xyze: не могу учесть вообще никак путь к состоянию

Xyze: если начинаю домножать/делить на глубину, становится хуже

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

Xyze: а путь важен по идее

NightLuna: ну да, там же зелья могли быть сварены

wlesavo: 0.9^depth

wlesavo: классика же

NightLuna: это куда?

wlesavo: ну дискаунт на все

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

NightLuna: типа умножать на оценку?

wlesavo: так уменьши награду за банки

Xyze: ну вот эти пляски опять )

wlesavo: увелич за конверсию

NightLuna: блин, я не знаю ничего про эту классику

Xyze: надо попробовать как нить

Xyze: NightLuna это позволяет собрать боту сливки не в конце всей симы

Xyze: а чуть раньше

Xyze: домножай score состояния на это вот

NightLuna: да, я поняла, что это про затухание

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

NightLuna: у меня сейчас есть оно, каждый ход умножается на (1 - 0.1*d)

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

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

Xyze: и начинает творить дичь

wlesavo: ну баланс нужен конечно

Xyze: мне надо учесть что у меня пока что полный перебор

Xyze: и там каждый чих меняет поведение

Xyze: даже if (deep==5) score++ поменяет игру )

tutubalin: а зачем здесь бимсёрч? у меня bfs при поиске всех кастов максимум до нескольких тысяч состояний доходит

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

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

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

gybson_samara: тьфу, у него id меняется после изучения

wlesavo: gybson_samara потому что двое могут выучить один спел

gybson_samara: у них action_type разный, так что не аргумент =)

wlesavo: так айди у всех действий уникальные даже у разных типов, пул id общий

Uljahn: "суть в том что на брутфорсе бот слишком буквально понимает дискаунт" - а зачем дискаунт на брутфорсе? или ты только себя брутишь? тогда это не совсем брутфорс, если противника не учитывать, а если учитывать, то дискаунт не нужен, т.к. он отвечает за увеличение неопределённости получения награды в зависимости от глубины (горизонта планирования)

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

Xyze: вот да

Xyze: у меня бот из-за "глобального" оптимума не ест банку на 4 ходу, потому что на 8 нашел сразу две

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

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

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

Uljahn: ну, если ты просчитал, что соперник сварит меньше в результате, то можно и отложить варку, это же брутфорс - полный перебор, т.е. минимакс

Xyze: а, ненене, брутить противника по времени не осилю

Xyze: или откатываться на маленькую глубину

Uljahn: а, тогда понятно

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

gybson_samara: это не проблема, а прелесть же

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

MadKnight: изи

Hoggins: запилил mcts, все хорошо, но GC мне сказал - на тебе сборку мусора на 45ms разок за матч :)

metahom: а если насильно запускать каждый ход?

Hoggins: Пока что он мои насильства имел ввиду. Все равно срабатывает где то в середине матча.

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

Hoggins: я вызываю, но она не происходит тут же

metahom: может это поколение 1 так шкалит?

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

metahom: или поколение 2

Hoggins: да, точно промоушен запуленых 50к нодов его тормозит

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

metahom: а если попробовать так GC.Collect(2, GCCollectionMode.Optimized);

metahom: т.е. не Optimized а Forced

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

Hoggins: попробую, спс

metahom: тогда он должен все поколения прогнать. ну и станет меньше времени есть. либо зависнет на первом же ходе )))

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

Hoggins: так а что делать... У многих язык без таких помощников. Я не думаю что .net приложение запускается в каком то общем домене

metahom: я бы спросил в общаке на всякий случай

Hoggins: с GC.Collect Forced в начале он стал там точно срабатывать и сьедать 1,3% от общего времени симуляции. А с таким вызовом на каждый тик он стал срабатывать на каждый тик и сьедать 11% времени. Так что оставлю один вызов

Hoggins: *без вызова получалось 1,7, где последние 0,4% и попадали куда то в середину матча

Hoggins: спасибо за рекомендацию, оставлю от нее часть :)

MadKnight: Hoggins у шарпов же не так плохо со сборщиком

metahom: да не за что. самому было интересно что получится :)

Hoggins: да, но и писать нужно нормально

MadKnight: так ты вместо создания объектов либо бери их из пула либо юзай стракты

Hoggins: да, пул и запилил, но сперва не угадал с заранее подготовленным туда кол-вом обьектов

Hoggins: Эх, все равно не такой четкий тайминг получается как с МС в котором аллокаций было минимум

wlesavo: 22/65 по моему также для меня кораблики закончились перед рекалком

YurkovAS: есть небольшой шанс выйграть футболку

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

wlesavo: хотя кто знает, вдруг у меня как раз на этих рангах винрейт нормальный

wlesavo: тут еще те камень ножницы бумага

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

BorisZ: ух первый раз выиграл у золотого босса

MadKnight: ну прям достижение

MadKnight: а это не рандом был?)

NightLuna: не таймаут?)

MadKnight: не Automaton2000 ?)

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

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

MadKnight: да ненене, всм это просто боту не повезло?

MadKnight: или реально ты его перехитрил?

MadKnight: кто затащил? RNG или твоя хитрость?

BorisZ: надо награждать такую версию сабмитом однозначно

wlesavo: BorisZ у меня даже против топ 3 ненулевой винрейт, но тут реально разные тактики друг друга контрят

MadKnight: так ты сначала скажи - RNG или версия?

MadKnight: wlesavo это называют rock-paper-scissors

wlesavo: я так и сказал, выше прочитай :slight_smile:

MadKnight: BorisZ скинь реплей

MadKnight: wlesavo го в гоночки, там всё чётко

MadKnight: никаких камней

MadKnight: подводных

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

wlesavo: не, я слишком слаб

NightLuna: я думала гоночки уже не в моде

MadKnight: pen'a ещё не победили

MadKnight: у него до сих пор 100% винрейт против всех

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

MadKnight: а он юзает в 10 раз меньше сим

NightLuna: 100 проц? жесть

BorisZ: не сохранял реплей, у нас в клубе джентельменам верят на слово

MadKnight: 99% ладно

MadKnight: у него 99/100 побед против всех

NightLuna: я только в search race играла, но я там на дне

MadKnight: го победи pen'a

NightLuna: ахахах, го ты)

MadKnight: no u

MadKnight: он ещё и юзает в 10 раз меньше сим

NightLuna: блин, BorisZ ну как так, надо было скриншот хотя бы и в рамочку :)

MadKnight: короче суть в том

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

NightLuna: 14 часов до конца, настало время

MadKnight: что во всех играх топы уже дошли до наивысшего уровня, и типа особо больше ничего не улучшить

MadKnight: кроме гоночек

NightLuna: прям во всех?

MadKnight: в гоночках постоянно находят новые способы взять 100% против предыдущего топа

NightLuna: наверняка есть не популярные

MadKnight: не популярные как раз быстрее всего упёрлись в максимум

MadKnight: как вот PR2

NightLuna: это что?

MadKnight: PlatinumRift

MadKnight: игра на hexagonal карте

MadKnight: на GitC чутка похоже

MadKnight: только карты огромные

BorisZ: https://www.codingame.com/replay/509161201

NightLuna: это какая-то древняя игра

MadKnight: и чё

NightLuna: ничего)

BorisZ: держите неверующие)

MadKnight: так тут боссу не повезло

wlesavo: так это ничья :smiley:

MadKnight: ты продал potion на ход быстрее него

MadKnight: и он "споткнулся" об это

BorisZ: черт действительно ничья )

MadKnight: ход 27

MadKnight: он за тем же potion'ом шёл

MadKnight: тебе просто повезло

NightLuna: ничья же

MadKnight: го перехитри его

MadKnight: NightLuna го в PR2

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

NightLuna: не, надо 2048 поиграть

wlesavo: то что босс с 20го места конечно тоже решает

NightLuna: там бим сеч

BorisZ: https://www.codingame.com/replay/509163323

NightLuna: блин, но у тебя прикольно он играет, у меня как-то хуже =(

NightLuna: все время пустой инвентарь, 1 к 1 меняет

NightLuna: тупенький какой-то

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

wlesavo: у меня в мс было продать готовое с вероятностью 50%

NightLuna: интрига оставшаяся, пройдет ли чокудай в легенду

wlesavo: это да

NightLuna: ну он делает успехи, уже в топ100, может и допилит

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

wlesavo: mc где-то за 1к роллаутов легко находит смерть на глубине 6-8

NightLuna: у меня сильное отсечение для этого, глубина 10

NightLuna: он все предсказывает, только толку 0 =(

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

wlesavo: хотя не знаю, там вон csip говорил что он в топ 20 сидел без учета оппонента вообще

NightLuna: вау

wlesavo: чокудай то крадется

NightLuna: какой же у него поиск там

NightLuna: подградывается да, ждите в легенде

wlesavo: ну сейчас у него уже с опппонентом в топ 10 где-то было? nfr xnj dct-nfrb gjkmpf tcnm

NightLuna: ну если норм реализовать, то по логике должна быть

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

wlesavo: ато в прошлый раз как то совсем изи

NightLuna: да, это не может не радовать))

Uljahn: смотрю, там второй питон в легу прошёл

Uljahn: топ-3 с конца :(

MadKnight: Uljahn го в легу

Uljahn: погоди, надо на плюсы переписать)

MadKnight: сначала го в легу

Uljahn: щас студия скачается...

MadKnight: быстрее было WSL заюзать

Uljahn: кнута осталось немного дочитать, страниц 900

wlesavo: Uljahn это начало сабмита, мож подымется немножко

MadKnight: Uljahn решил выучить с++ за 21 час?)

wlesavo: [jnz yt? gj[j;t yt gjlsvtncz

MadKnight: lf

wlesavo: хотя не похоже не подымется уже

MadKnight: gjk.,jve

Uljahn: за 13 часов и 40 минут на кодинг)

MadKnight: это слишком много

MadKnight: го за 21 минуту

MadKnight: и чтобы ни секундой меньше

TheCrucial: это контест сложный или я что то явно не так делаю? уже часов 6 потратил и всё ещё в серебре :(

wlesavo: ну 6 часов это немного

wlesavo: но контест сложный относительно

NightLuna: ты же не чокудай)

ilgiocatore: сложный, непредсказуемый

wlesavo: чето чокудай отстает от графика конечно

ilgiocatore: один параметр в оценке может поменять позицию на 300-400 мест

aropan: > это контест сложный или я что то явно не так делаю? уже часов 6 потратил и всё ещё в серебре 😟 Если считать, что баги делаешь ты, то думаю второе. Если написать все хорошо и разумно, то в золото не должно быть сложно попасть.

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

ilgiocatore: я как раз в это межсезонье залезал в легу крестиков - там как раз всё достаточно понятно с самого начала)

NightLuna: да ну эти ифы, пишите поиски говорили они в итоге оценочная функция та же эвристика, только еще и фиг отладишь

ilgiocatore: ну по крайней мере для входа в легу

NightLuna: я так и не зашла в легенду в крестиках =(

wlesavo: вообще я не знаю сколько времени потратил, но конечно сильно больш чем 6 часов

wlesavo: но у меня и руки не из того места

NightLuna: мне кажется, что из серебра можно выбраться за 6 часов...

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

ilgiocatore: а в троне и fb за день в легу вошёл

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

ilgiocatore: даже))

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

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

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

NightLuna: трон, это что за игра?

wlesavo: трон это пвп змейка

NightLuna: чет у меня винрейт против босса примерно 1 из 10 игр, какое-то дно

wlesavo: https://www.codingame.com/multiplayer/bot-programming/tron-battle

NightLuna: не играла

NightLuna: но прикольно выглядит

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

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

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

wlesavo: TheCrucial добавь изучение 4-5 нулевых спеллов если нет еще, и дальше любой поиск

Valdemar: NightLuna мне огромный буст дал тюнинг начального драфта

NightLuna: почему 4-5? не мало?

Valdemar: просто брать не 14 а 12 спелов

NightLuna: 12 первых?

tomatoes: у меня в троне один код помоему сразу с бронзы до леги пронёс

wlesavo: хм, ну можно больше, мне хватает, даже многовато иногда

NightLuna: или 12 по умному взятых?)

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

NightLuna: ну ты наверное в середине игры еще добираешь))

Valdemar: это тоже

Valdemar: как раз с 14 он редко добирал, с 12 начал делать это чаще

Valdemar: видимо это сильно ему помогает - не тратить 2 лишних хода в начале

wlesavo: добираю, но тут игры в среднем 35 ходов, 10-11 спеллов в сумме с начальными где-то в среднем получается

Valdemar: локально играет чуть хуже, но с другими значительно лучше

wlesavo: то есть по ходу 2-3 спелла добирается

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

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

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

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


NightLuna: но идея 1 раз хорошая, попробую, спасибо

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

Valdemar: у меня только добавление этой штуки дало 57% винрейта против версии без нее

Valdemar: не ограничиваю количество изучений, но редко хочет учить больше 1 заклинания

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

Valdemar: начальное изучение не заменяет, конечно

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

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

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

735487: почитал что вы тут пишите. решил попробовать чтобы учил 12 в начале а потом не учил вообще. и стало лучше :)

ilgiocatore: я периодически то включаю то выключаю обучение во время игры

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

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

MadKnight: так все заливают походу

TheCrucial: бфсю до х4 повторяемых заклинаний. часто больше чем 4 надо кастить?

tomatoes: почти никогда, но всё же попадается

Valdemar: может быть 5

BorisZ: я учу сначала 7 штук насильно, потом еще 3 если скор плохой насчитывается, а потом уже только если в поиске попадется

BorisZ: не очень часто поадается, может 1-2 на игру

BorisZ: 12 форсить как-то перебором кажется по 30-35 ходов игра у топов длится

NightLuna: ну с комбо быстро рецепты делаются

735487: фига себе pb4 оторвался и еще только 25%

NightLuna: почти полтора очка

NightLuna: круто

AtrA: как победить таймауты на арене? (c#)

Xyze: прогрей рантайм

Xyze: у тебя есть 1 секунда первого хода

MadKnight: не выходи за рамки времени

MadKnight: изи

Xyze: запусти там симуляцию на пол секунды

Xyze: там jit компилятор влетит, скажет "ну нифига долго метод работает"

Xyze: закомпилит его

AtrA: попробую

Xyze: дальше будет норм

wlesavo: https://twitter.com/chokudai/status/1330547405268295680 :smiley:

NightLuna: хахахах))

Uljahn: лол

Beard: странно у вас получается. у меня ещё среди недели было 12 тиков обучения, а потом полный бфс, без всяких симуляций, и я как болтался в середине серебра, так и остался

Xyze: мы не ищем путь к банке

Valdemar: тут под термином бфс называют перебор

Xyze: там надо оценивать стол после кучи кастов

Valdemar: генерируешь состояния, оцениваешь, максимизируешь

Xyze: и вообще brew надо в симу

Xyze: и отпускай его гулять на 40 мс

Beard: пфф теперь понятно)

Beard: а то бфс бфс

Valdemar: путь к банке это невыгодная штука

Valdemar: потому что надо не сварить, а выиграть игру)

Xyze: но тебе быстро переписать это

Xyze: относительно

Xyze: часа 2 наверное

ilgiocatore: смотря как изначально написано

Xyze: логично

Beard: ну я вот освободился, буду писать симу)

MadKnight: Xyze есть ещё топ идеи?

MadKnight: Beard а чё там писать?

MadKnight: Valdemar так BFS это и есть путь

MadKnight: а стоп

MadKnight: это было для Xyze

MadKnight: Valdemar а тогда что ты юзаешь*?

Beard: MadKnight скорость не моя сильная сторона

Beard: вот баги плодить это да

MadKnight: Beard да всм чё сложного в написании симы для этой игры?

MadKnight: тут же просто

MadKnight: inv -= spell.cost;

MadKnight: Beard а ты на с++ ?

Valdemar: MadKnight бим серч

Beard: MadKnight ага

ilgiocatore: MadKnight а вот уже и баг) надо inv += spell.cost

MadKnight: это если я не сделал spell.cost = -inputCost

MadKnight: Valdemar а противника предсказываешь?

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

MadKnight: это как ты это всё накрутил?

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

BorisZ: 1 лерн на ролаут стоит ограничение

Xyze: мб бага?

Xyze: в общем случае так не должно быть

BorisZ: угу странно конечно

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

wlesavo: BorisZ ты правильно обрабатываешь переполнение инвентаря от спелов?

BorisZ: да, больше 10 обрезаю

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

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

BorisZ: на первых да, только нулевые, может дойдут руки до других, не знаю

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

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

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

BorisZ: скорее уж наоборот

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

Zhmyh: Сколько обычно делают слоев и вершин в нейронках для таких игр?

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

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

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

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

Zhmyh: Да, ну я пока 3 скрытых слоя 10-7-5, дальше уже по времени сложно

Xyze: https://github.com/pb4git/Nash-DQN-CSB-Article

Xyze: классика

wlesavo: csb совсем другое

Xyze: так победили CSB

Xyze: =)

wlesavo: слишком простое состояние

Xyze: ну хотя бы направление, что почитать

Xyze: понимаю что всё разное

Xyze: но для общего развития

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

Zhmyh: "Фитуешь" это...?

wlesavo: ну что на выходе у нейронки

Zhmyh: А

Zhmyh: То, насколько вершина хорошая

Zhmyh: 1 выход

Xyze: смог предсказать противника 1 к 1 на 5 ходов вперед

Xyze: я удивлен

wlesavo: Zhmyh а вершина это состояние полное?

Zhmyh: Да, я вначале прохожусь бфсом немного

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

Zhmyh: Ну у меня только 1800 игр в час скорость.

Zhmyh: Да, маловато

Pyhesty: 10-7-5 если сеть прямого распространения без обратных связей - то ёмкость у неё низкая... учителем сети должен быть устойчивый алгоритм, который хотя и играет ход в секунду (или на gpu), но считает точно то, что ты бы хотел, что бы считала нейронка, со всеми оценками, бфб и прочее... но мне кажется 10-7-5 ёмкость очень маленькая...

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

wlesavo: ну это полезные очевидности

ilgiocatore: ого, 5 раз подряд выиграл у золотого босса в ide, срочно git add . | git commit

Xyze: сид менял?)

ilgiocatore: да

ilgiocatore: но всё равно чую какой-то подвох

ilgiocatore: подобрал небось лучшую страту именно против него лол

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

wlesavo: прямо винрейт против рашеров под 0 процентов иногда

ilgiocatore: у меня еще до сих пор не очень умный выбор заклинаний в начале

ilgiocatore: думаю, осталось только это доделать и лега будет наконец-то

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

Xyze: ты в легу прошел на 4-5 спелов?

Xyze: но с доучиванием?

wlesavo: но возможно мои оценки слишком плохие были в этой спелсиме

wlesavo: да с доучиванием

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

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

wlesavo: там в топе будет зарубище

Default avatar.png vmelnyk: (-1,-1,0,1) спел изменили после начала раунда?

tutubalin: там несколько поменяли из-за путаницы t1 и t2

Default avatar.png fablelive: есть кто-то? нужна помощь

Xyze: что такое?

Default avatar.png fablelive: подскажи, как понять за какого плеера ты играешь?

Xyze: ты про Fall Challenge 2020?

Default avatar.png fablelive: да

Xyze: смотри, на реплее -> смотришь на свой ник, видишь сторону

Xyze: в коде, твой инвентарь всегда первый

Xyze: скилы и так разделены

Xyze: то есть в инпутах считай что ты всегда слева

Xyze: игра полностью симметричная

Default avatar.png fablelive: Ага, мой инвентарь всегда первый спасибо!

А как ты понимаешь какие тебе спеллы юзать? Ведь за одну сторону у них одни айдишники, а за другую - другие?

Xyze: не понял вопрос

ilgiocatore: по actionType

Beard: твой подписан как "CAST", у противника "OPPONENT_CAST"

Default avatar.png fablelive: Вооот! Спасибо большое парни, очень помогли

MadKnight: Beard

Beard: ?

TeeTeD: господа

TeeTeD: где нормальные задачи найти?

NightLuna: у меня какие-то странные таймауты =(

NightLuna: причем как будто только у меня =(

ilgiocatore: баг какой-то

NightLuna: =(

ilgiocatore: в плюсах так запарно ловить баги иногда, это капец

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

NightLuna: ведь если exception по другому никак?

NightLuna: не особо удобно как-то

ilgiocatore: ну на cg плюсы выводят только некоторые ошибки у меня, и не пойму как это работает

NightLuna: =(

NightLuna: вау, я выиграла босса прям на арене

NightLuna: 1 раз

BorisZ: все я выдохся, силы иссякли, упал дровосек

NightLuna: мне чуть чуть не хватает =(

BorisZ: почти все фичи что сегодня запилил пришлось откатить

NightLuna: почему?

MadKnight: вы мне напоминаете как я в 2016 радовался единичным победам против pb4

MadKnight: в гоночках

BorisZ: хуже получается или так же, а по сумме плохо

BorisZ: NightLuna да ты считай что прошла процентов на 90

NightLuna: а сейчас ты достаточно взрослый, чтобы вообще не участвовать?)))

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

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

NightLuna: дилемма

NightLuna: у меня новая фича готова

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

BorisZ: новая фича это серьезно )

NightLuna: окажется, что с ней хуже, как обычно)))

NightLuna: у меня лучше стало играть после того, как я концовку запилила

NightLuna: и сделала, как советовали, 8 рецептов учу из книги, а потом в процессе игры учу по мере необходимости

NightLuna: блииин

BorisZ: а первые 8 строго снизу или выбираешь?

NightLuna: это все мону виноват

NightLuna: я ему 5 раз проиграла за последние 10 игр

NightLuna: ну у меня есть какой-то выбор

NightLuna: я не знаю работает ли он вообще, может без него лучше

NightLuna: блин, он щас там стоит на страже легенды, я ж не пройду пока он там

ilgiocatore: ну сначала его запушишь потом пройдешь)

NightLuna: у него игры тоже закончились и онлайн нет

NightLuna: ну будем надеяться

NightLuna: о, спирит пересабмитил, значит будут игры с ним, это плюс

NightLuna: ну капец он взлетел

NightLuna: какая-то другая версия чтоли

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

MadKnight: NightLuna ужас

MadKnight: NightLuna а ты оптимизировала размер game state'a ?

MadKnight: и как prune'ишь ходы?

NightLuna: офигеть, вот это сабмит, проиграла дофига XD

NightLuna: не самая лучшая фича походу

MadKnight: чё за фича?

NightLuna: да, оптимизировала размер стейта

NightLuna: даю бонус, если идет к предполагаемому вражескому зелью

NightLuna: ну как-то обрезаю, сложно уже сказать как))

MadKnight: в итоге оказалось что чаще ты не угадываешь предполагаемое зелье и идёшь к плохому зелью?)

NightLuna: хз, я не смотрела игры

MadKnight: ну а примерно как обрезаешь?

MadKnight: короче надо условие усложнять

MadKnight: не надо всегда бонус за это

NightLuna: ну вроде кого-то выигрывает, может и дойду до топа

MadKnight: а сколько щас в леге?

NightLuna: 75 гдето

NightLuna: может и не надо всегда... я самый ближайший беру и за него даю...

NightLuna: но наверное надо не ближайший, а какой-то более осмысленный...

NightLuna: надо как-то ловушки делать, чтобы инвентарь забивался, это прикольно, сложно сказать насколько полезно))

NightLuna: блин, сабмит так быстро идет

NightLuna: круто

NightLuna: с такой скоростью можно и поэксперементировать

NightLuna: причем я такой большой бонус даю, в 2 раза увеличиваю стоймость заказа

NightLuna: кошку протолкнули

NightLuna: только я ушла XD

MadKnight: так непривычно видеть здесь женские окончания слов

MadKnight: хотя мне тут и на русском общаться непривычно

NightLuna: сейчас и спирита протолкнут

MadKnight: у меня кстати недавно мысли на инглише шли

MadKnight: я инглишь кинцо пересмотрел и пошёл спать, и пока засыпал - все мысли были на инглише

NightLuna: норм, ты поди и думать можешь на англ

MadKnight: чат лагаааааааает

NightLuna: зато самбиты летают

NightLuna: сабмиты*

NightLuna: мне кажется 100 процентов за 15 минут

NightLuna: это же никогда такого не было

NightLuna: видимо никого нет

NightLuna: еще 2 зашли в легенду

NightLuna: мда...

NightLuna: мне нужна фича

NightLuna: Xyze неплохо

NightLuna: разогнался)

MadKnight: NightLuna а ты что, не особо знаешь инглишь?

NightLuna: ну так, средне

MadKnight: чё так?

NightLuna: сложно сказата

MadKnight: го практиковать

NightLuna: в англ чатике? XD

NightLuna: я там обломала сабмит илидана

NightLuna: он 5 раз мне проиграл подряд))