Chat:Ru/2020-11-22
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: там в топе будет зарубище
vmelnyk: (-1,-1,0,1) спел изменили после начала раунда?
tutubalin: там несколько поменяли из-за путаницы t1 и t2
fablelive: есть кто-то? нужна помощь
Xyze: что такое?
fablelive: подскажи, как понять за какого плеера ты играешь?
Xyze: ты про Fall Challenge 2020?
Xyze: смотри, на реплее -> смотришь на свой ник, видишь сторону
Xyze: в коде, твой инвентарь всегда первый
Xyze: скилы и так разделены
Xyze: то есть в инпутах считай что ты всегда слева
Xyze: игра полностью симметричная
fablelive: Ага, мой инвентарь всегда первый спасибо!
А как ты понимаешь какие тебе спеллы юзать? Ведь за одну сторону у них одни айдишники, а за другую - другие?
Xyze: не понял вопрос
ilgiocatore: по actionType
Beard: твой подписан как "CAST", у противника "OPPONENT_CAST"
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 раз мне проиграл подряд))