Chat:Ru/2020-06-05
735487: YurkovAS: что улучшил если не секрет?
YurkovAS: amurushkin поменял кое-что в симуляции. еще в новой оптимизации search race заметил, что неточночности симуляции заметно влияют на результат. не уверен, что сейчас симуляция точная, надо будет поразбираться еще.
735487: а почему она у тебя неточная была?
735487: из за кеширования углов ты их брал неточные что ли?
YurkovAS: amurushkin копировал из стартера, либо там была ошибка, либо сам сломал. нет же точного официального рефери.
735487: есть кажется какой то тестер для симы. сравнивает с ожидаемым результатом по нескольким трассам. но я не пробовал свой гонять
tutubalin: Platinum Rift 2 начался
tutubalin: неофициальный
Uljahn: лол
Uljahn: только недавно в нём пилил бота
BorisZ: расположение баз тут странное - могут быть симметрично а могут быть вобще случайно
BorisZ: причем гкогда нет, то бывает что явно лучшее положение у одного
BorisZ: бывает что на расстоянии двух клеток базы )
BorisZ: блин есть карты когда базы тупо в соседних клетках
BorisZ: https://www.codingame.com/replay/433788671
BorisZ: тут вобще невозможно выиграть за красного
BorisZ: https://www.codingame.com/replay/456922043
BorisZ: а тут рядом
BorisZ: то есть тот кто не атакует всеми ботами базу проигрывает сразу, иначе ничья
BorisZ: принципиально разные стратегии для разных карт нужны
Uljahn: погоди, ты же знаешь положение вражеского штаба всегда
Uljahn: карты иногда не честные, но это работает в обе стороны
BorisZ: читаю, не могу найти где написано что вражеский штаб виден всегда
BorisZ: а понял, на первом ходу каждый одной ячейкой владеет - это и есть штаб
Uljahn: The HQ of both players is always visible, which will let you detect the enemy base on the very first turn.
Uljahn: ага
Uljahn: ещё в плеере можно туман войны для каждого игрока включать по отдельности, штаб противника при этом виден
735487: опять кажется что для этой игры должны потенциальные поля рулить
BorisZ: наверное, если не рядышком базы
BorisZ: у меня сделано как система тикетов, которые выставляют зоны с каким-то мудреным приоритетом
BorisZ: а потом тикеты по подам распределяются
BorisZ: надо действительно с полями переделать как-то, поля все ж много факторов учитывают
BorisZ: а у меня какие-то свои измышления и приоритеты эти сомнительные очень
BorisZ: идут гуськом тупик разведывать, хотя там и одного хватило бы
Uljahn: можно несколько моделей противника использовать, типа фулл-ин рашер или против себя же симить
Uljahn: потом искать подтверждения актуальности
BorisZ: стал думать нафига противника симить, придумал
BorisZ: твой под стоит на платине, в соседней враг - без платины
BorisZ: если ты пойдешь на него, а он пойдет на тебя - ты просто платину потеряешь
BorisZ: а если стоять то оба умрут, зато платина останется твоя
735487: ну блин симить такое количество подов это пипец
BorisZ: да, с полями это можно учесть - чтоб притягивала своя платина, рядом с которой враг
BorisZ: но может еще какие случаи есть, всего не предусмотришь
Uljahn: в GitC же симили как-то, там похожая фигня, только без тумана
BorisZ: не, там проще - известно сколько ботов есть, сколько произведется, сколько идут туда твоих и врагов
BorisZ: то есть на несколько ходов вперед - просто вычитанием
BorisZ: можно предсказать
BorisZ: тут для каждого пода до 7 вариантов движения, если их даже 10, то 7 в 10 степени )
wlesavo: 7 в 10 если никто на одной клетке не стоит, но да, один фиг много
BorisZ: на одной или нет неважно, они же каждый независимо могут пойти
BorisZ: ну понятно что там не 7 а меньше, я ж пугаю )
BorisZ: когда пугаешь надо все по максимуму говорить, например когда просят сказать сколько времени тебе надо на эту задачу
735487: да если всего 2 варианта то это уже дофига
BorisZ: да вроде поля естественно тут выглядят + какие-то исключения для ситуаций что твою базу рашат или сам можешь рашить
BorisZ: минимакс там, хз перебор какой-то короче
BorisZ: карты конечно есть здоровые сильно, с ними фиг знает как, не успеть наверное все поля расчитать
wlesavo: BorisZ если на одной то будут идентичные варианты типа первый идет налево второй направо то же самое что и наоборот. то есть там будет что чтото типа С(7,k)
BorisZ: согласен
wlesavo: BorisZ а какое место у тебя до начала контеста в пр2 было?
BorisZ: 152, как сейчас
wlesavo: а, ну да, логично что не сабмитил еще
BorisZ: не трогал пока ничего
wlesavo: я даже не записывался к тибпату, но если будет кругом обсуждение мож тоже чуть присоединюсь
wlesavo: пока чет много других дел
BorisZ: но тут у меня как раз есть LazyGraph, который считается несколько ходов только ради расстояний и путей, а с полями надо это каждый ход делать
wlesavo: я помню по твоим реплеям помоему тактику эмулировал, тоже уже месяца3-4 назад наверное
Hamibar: не очень понятно как рейтинг в этом неофициальном контесте считается
wlesavo: цепочками бежали друг за другом во все стороны, даже в тупик пока там было неразведано
wlesavo: Hamibar ну как я понял идея в том что ты соревнуешься чисто сам с собой, чтобы в конце сказать что ты +столько то рангов сделал
BorisZ: Hamibar да так-то не важно, все рано нет никаких призов, ради тусовки да темы для обсуждений
Hamibar: а чем это отличается от мульти :grinning:
wlesavo: так ничем, смотри на это как на мульти недели
BorisZ: мульти все разные пилят - один про гоночки, остальным неинтересно, другой про крестики и так далее
Hamibar: ну ладно) выглядит ничего так. Можно потом в мульти побегать.
BorisZ: я может даже не начну писать то, а пообсуждать интересно )
Hamibar: вот это сабмит в крестиках дал) 30 /30 и сразу выше боса
Uljahn: лига?
Uljahn: о, вижу, в голду пролез
Uljahn: такс, нас четверо уже в крестиках примерно в середине, плюс tutubalin в топе голды
Uljahn: gybson ещё вроде собирался присоединиться
Uljahn: может ну его этот PR2? :thinking:
wlesavo: я вот думаю что можно с крестиков как раз плюсы изучать начать
BorisZ: крестики то не убегут никуда, а тут хоть движуха
Uljahn: так у нас своя движуха
Uljahn: кто в леге крестиков - тем, наверное, не интересно уже :)
wlesavo: вообще я хотел адаптировать то что в pr1 добавил недавно и перенести в pr2, но что то лениво
735487: в леге крестиков там другого уровня интерес уже
tomatoes: pr1 с лигами, а pr2 без. странно как-то :thinking:
tutubalin: странный баг. поменял немножко рандом - он мне стал показывать какое-то запредельное количество симуляций
tutubalin: если вообще убрать рандом, то число остаётся обычным. а с модифицированным рандомом - 10 миллионов сим
tutubalin: при этом играет хуже
tutubalin: локально не воспроизводится
wlesavo: прикольно
wlesavo: может выходит куда-то не туда и сима рано терминируется
Hamibar: Uljahn тот сабмит в бронзе был, но все равно приятно). Прикрутил бандита и попробовал.
tutubalin: нашёл в чём бага. компилятор решил передавать параметр в ассемблерную вставку через регистр RAX, а он у меня используется
Uljahn: ну ты хакер
Uljahn: https://www.codingame.com/replay/471108781
Uljahn: топ карта в PR2
tutubalin: сколько пространства для манёвра!
Uljahn: для тестирования норм
MelnikovIgor: Не в курсе, по UTTT есть репа с кодом у топов?
MelnikovIgor: Хочу посмотреть подходы
Hamibar: для этого наверное лучше темки с описаниями стратегий посмотреть. Правда не знаю где их найти.
Hamibar: На форуме наверное кто-то описал свои стратегии.
dbf: да там особо и стратегий-то нет, пишешь mcts и ускоряешь, пока силы есть
dbf: оптимизации стандартные: пул объектов, битборды, предпросчёты, быстрый рандом :)
dbf: для любителей паковать данные - книга дебютов
YurkovAS: easy :smiley:
dbf: можно делать стрим по проходу в легенду :grinning:
Hamibar: а что в леге никто не придумал ничего лучше, чем рандомные ходы?
ilt: dbf а ну ка давайка сделай стрим!
Uljahn: в леге есть минимаксы, но не в самом топе
Uljahn: прелесть рандомных ходов в том, что для них не нужна оценка, а для миника нужна
ilt: ускорился еще немного, но опять вернулись таймауты
ilt: вылетает на 3-4-5 ходу стабильно
Uljahn: кто-то советовал начинать засекать после всех инпутов
ilt: думаю там опять сборщик мусора запускается
Uljahn: а ты методы прогреваешь?
Uljahn: может там компиляция срабатывает как раз
Uljahn: горячие методы в нативный код компилируются, или типа того
Uljahn: правда, я в джаве не разбираюсь почти, просто за пять лет чего только не насмотрелся в чате :smiley:
ilt: думаю вся компиляция в первый ход делается
YurkovAS: я засекаю после всех импутов - проблем нет. только в csb, но там у всех таймаутит.
Uljahn: мне кажется, тут не думать надо, а пробовать и замерять, либо под капот лезть и курить мануалы
YurkovAS: лидерборды сломались - не обновляются
ilt: по замерам в локале все ок
ilt: на сервере падает с таймаутами
Uljahn: ты после каждого роллаута проверяешь оставшееся время?
ilt: да
Uljahn: а запас какой?
ilt: разный пробовал
ilt: даже до 10 мс
ilt: при 10 мс тоже таймаут но ходов на 20 позже
ilt: стандартно 5 мс запас
Uljahn: затраченное время на ход выводишь в месейдж?
Uljahn: ещё бы частоту процессора выводить не мешало
ilt: вообще не вывожу
ilt: в дебаг режиме только
tomatoes: у меня бывало в самых первых играх вылетало, а дальше нормально шло
Uljahn: https://www.codingame.com/replay/471242123
Uljahn: я вот так сделал, "частота:время роллауты"
Uljahn: tec - это teccles move
ilt: это здорово
Uljahn: ага, красиво, но бестолково)
Uljahn: потому что нумбы нету, Automaton2000
Automaton2000: а что если кто-то сгенерит случайный токен и получит валидный чужой токен?
ilt: если простую проверку добавить то получается что-то типа 6k 6k потом 1k и таймаут
ilt: количество роллаутов сильно прыгает конечно
ilt: но последить за ними в процессе игры полезно
tutubalin: если стабильно таймаутит - значит бага в коде. или бесконечный, или очень длинный (например, когда цикл "пока не ноль, уменьшать", а туда пришло -1)
tutubalin: *бесконечный цикл