Chat:Ru/2021-12-19
aangairbender: winwinwin это название алгоритма?
YurkovAS: это ник игрока
YurkovAS: ура, проскочил в легу! сам не понял как так получилось. с минимаксом
wlesavo: поздравляю! :slight_smile:
YurkovAS: спасибо!
wlesavo: я думаю сегодня еще одну большую идею проверю и на этом закончу, хочу заменить симуляцию противника на вероятностное предсказание
YurkovAS: у тебя же противник всегда wait, а в минимаксе такое не работает
YurkovAS: я еще проверю другие поиски: мс или эвалюционный
wlesavo: это да, у меня так и не получилось завести сколько нибудь нормальное предсказание соперника
YurkovAS: просто мне не нравится как у меня стреляет, если добавлять 2-3 разных выстрела, то миник уже не справляется может другие поиски как раз смогут
wlesavo: с выстрелами все сложно конечно
YurkovAS: и бимсерч может неплохо играть
wlesavo: YurkovAS мне кажется не, тут большая глубина не особо нужна, потому что с появляением новых ядер предсказание тутже актуальность теряет
wlesavo: вообще мне конечно кажется что чтото типа миника должно играть, но прунинг нужен очень хороший
YurkovAS: у рекурса же миник
YurkovAS: вначале был мс, потом брутформ, потом миник
YurkovAS: у тебя же дисконт есть? может брутфорс проверить, в нем проще с дисконтом сделать, или мне кажется... не получилось в минике
wlesavo: там должна быть стрельба какая-то с определением ключевых точек по которым стрелять
wlesavo: дисконт есть, да, в мс важно очень это
aangairbender: ох уж эти термины) что такое дисконт?
YurkovAS: это коэфф, обычно меньше 1, чтобы начальная глубина давала больший приоритет
YurkovAS: например: 0.9^depth
YurkovAS: на каждой глубине оцениваем, умножаем на этот дисконт и суммируем в итоговый скор.
aangairbender: ага, окей, слышал это под названием decay
YurkovAS: эх, еще 3ч ждать, уже охото сабмитнуть, а в голде страшно уже, вдруг удача просто
wlesavo: неплохо пошел сабмит у тебя)
YurkovAS: скоро перебалансируется в обратную сторону :)
YurkovAS: не ожидал такого
YurkovAS: в great-scape в леге 200шт, мой приземлился в 30-ку, хотя еле прошел золотого босса
wlesavo: ну у тебя от босса нормальный отрыв был сейчас, так что в районе 30го ожидаемо
wlesavo: сабмиты черепашьи конечно
YurkovAS: против твоих мин плохо играет
wlesavo: у меня мины в симе, фактически ставятся когда 100% в них можно на инерции влететь
wlesavo: ладно, меня мид легенды впринципе устраивает, наверное закончу на этом, думаю ближе к следующей неделе код оф кутулу начну
wlesavo: кстати ровно середина, 43/86 :slight_smile:
YurkovAS: да, отличный результат. я так и не пробовал другие алгоритмы, есть еще идеи, может попроверяю
YurkovAS: в код оф кутулу тоже сложная сима
wlesavo: хочу настроить еще эйлеровский выкачиватель реплеев, устал дебажить в cgшной ide чето :slight_smile:
wlesavo: на работе кайфовал когда настроил для visual студии чтобы в дебагере можно было изображения просматривать которые в переменных хранятся
YurkovAS: а как он работает? применяешь такие же действия, как в реплее и сравниваешь следующее состояние игры чтобы совпало с реплеевским?
YurkovAS: типа валидатора
YurkovAS: intellij idea тоже показывает картинки, стандартные swing-овые в яве
wlesavo: ну получается там входные данные с рефери за каждый ход просто приходят, находишь реплей в котором поведение не нравится, а дальше уже можешь дебажить как хочешь
wlesavo: ну у нас там своя библиотека MinImg, и для нее прямо стандартных средств нету, но есть плагины для студии которые можно правильно сконфигурить
YurkovAS: у рекурса читал про валидацию на реплеях. а так, хз, даже, локальный комп по другому все насчитает, но наверное можно прокрутить принудительно к нужному ходу
wlesavo: когда с картинками много нужно работать без этого вообще тяжело, иначе приходится миллионами отписывать картинки
wlesavo: YurkovAS я так понимаю там скорее валидация симы получается? я что-то похожее пробовал но в сильно более простых играх
YurkovAS: да, валидация: скачал несколько реплеев и ходит так же как и там ходили все: след состояние должно совпасть
wlesavo: для дебага можно сделать остановку роллаутов по количеству или глубину какую-нибудь зафиксировать
wlesavo: а ну так круто конечно, да
YurkovAS: я обычно локально тестирую импуты, как в игре, а потом их в stdin подсовываю и все работает стандартно
YurkovAS: вот так: http://chat.codingame.com/pastebin/6ba3b25b-7a48-4f14-8fa5-2566a3a110f1
YurkovAS: msg - там 1 строка для примера, а обычно все что подается на вход в нее надо вставить
wlesavo: ну так я тоже делаю, просто хочу наконец автоматизировать, чтобы все выкачивалось и автоматом в инпут подсовывалось
wlesavo: все заработало, прикольно, и парсится нормально и в инпут подсовывается из файла, я думал это сложнее, так бы давно уже сделал
aangairbender: а есть где-то формат реплеев? или туториал как вытянуть json?
TTeaLL: тут можно как-то играть с подключёнными файлами?