Chat:Ru/2020-09-04
gsomix: А на сайте есть какие-то проверки кода на дубликаты/плагиат?
gsomix: Я просто собираюсь все свой код публиковать на гитхабе. Язык использую очень непопулярный, а копирует ли кто-то код мне все равно.
gsomix: *весь
gsomix: Просто думаю, насколько это этично выглядит с точки зрения других игроков и админов сайта.
tutubalin: не очень этично. я как-то раз выложил на гитхаб, меня люди в этом чате попросили закрыть. кроме одного, который запостил мой код от своего имени и улетел в легу )
gsomix: Понял. Спасибо.
tutubalin: поэтому храню только в приватных репах теперь.
tutubalin: хотя конечно обидно. было бы очень интересно посмотреть работы других игроков и показать свои.
tutubalin: могли бы многому друг у друга научиться
gsomix: Да, жалко, конечно.
gsomix: Придется фармить зеленые квадратики на гитхабе контрибьютами в опенсорс. :)
tutubalin: кстати, можно в приватные репы добавлять collaborators
gsomix: Ага. Я думаю, если человек проверенный, то можно без проблем дать доступ к коду.
tutubalin: то есть можно показать код ограниченному кругу лиц, и кто попало залезть не сможет. правда, есть риск, что кто-то из ограниченного круга лиц куда-нибудь репостнет
Uljahn: помню, во время поворят в чате помогли с логикой, но чтобы полностью бота копипастить...
gsomix: Сегодня сайт отображает много народу в чате. Какое-то событие?
Uljahn: может, просто чат перезагружали, и все офлайновые реконнектнулись в онлайновых
Uljahn: эйлер пишет в дискорде, что запилил контест, но его не выпустят до осеннего официального: "I proposed a contest (my game is finished) but it won't happen before the Fall Challenge."
gsomix: Попробую улучшить позицию в гоночках, а потом, наверное, попробую Ocean of Code. Пакманы пока не зацепили, это если из последних игры смотреть.
gsomix: Заодно нужно попробовать какие-нибудь способы визуализации, чтобы в оффлайне отлаживать было удобно.
gsomix: Наверное, возьму UI фреймворк, чтобы и графику и контролы отображать.
QuantumQQ: Наконец-то дрифт освоил
gsomix: QuantumQQ, в гоночках? А что делаешь?
QuantumQQ: на кольцевых, сразу без шансов. Там где рулем в разные стороны надо крутить, уже проблемы. Но сча наверно в голд зайду сразу.
Uljahn: в голде совсем другая игра начинается, до голды - это туториал, который можно на одной формуле -3Vel пройти
QuantumQQ: я подозреваю :) т.к. тут даже без вычислений физических параметров подобрал код.
gsomix: QuantumQQ, удачно подобрал?
QuantumQQ: наверно, щиту пока применения не найду.
Uljahn: щит можно принудительно включать на разворотах, когда цель за спиной
Uljahn: чтобы не выталкивали с траектории
Uljahn: до легенды со щитами и коллизиями можно не заморачиваться
QuantumQQ: а, точно. Он же не ограничен по использованию, как буст
Uljahn: хотя, в голде можно уже будет легко детектировать коллизии, там больше данных на входе будет
QuantumQQ: но так, да, с дрифтом, у меня за спиной все время пока оппоненты
Uljahn: задумка такая, что пока ты разворачиваешься на чекпоинте, то догоняющий противник не сможет тебя вытолкнуть, если у тебя щит включен
Uljahn: но это конечно не всегда работает
BorisZ: gsomix у меня тоже такое бывало что бот проскакивал целую лигу, одна и таже версия
BorisZ: я подозреваю что это из-за того что часть это старые сабмиты, а языковые апдейты делают их мертвыми
BorisZ: удачный сабмит попадется когда много таких покойников и сразу наверх проскакиваешь
QuantumQQ: не, щит не включается. У меня почти всё время тапка в пол. Нужно только столкновение считать.
BorisZ: но это гипотеза только, может некоторые игры сами по себе дисперсионные очень, высок фактор случайности
Uljahn: BorisZ: есть ещё эффект КНБ (RPS), когда твой бот со стратегией "камня" удачно попадает в основном на "ножницы" и другие "камни"
BorisZ: может и так, хотя я не очень в это верю, какой в троне например можно придумать КНБ?
Uljahn: можно играть против сильнейшего, или против всех, или против ближайшего
BorisZ: для того чтоб это работало нужна игра где можно выделить минимум три такие стратегии, в каких-то играх наверное можно придумать, согласен
BorisZ: да, с натяжкой конечно но согласень )
BorisZ: жалко конечно что у эйлера не выпустят контест, про подлодки очень крутой получился у него
gsomix: Может к концу года?
BorisZ: code of Kutulu тоже был эйлер в авторах
BorisZ: официальный если не раньше ноября обещают, два подряд то напряжно уже, сейчас бы в самый раз было
wlesavo: пропустил обсуждение, точно сказали что не будет комьюнити контеста да?
YurkovAS: оптимизации получается большинство расчитаны в оффлайне? под каждый валидатор захардкодили лучшее решение
Pyhesty: народ, а есть ли среда разработки под питон 3 с дебагом, а то в визуалке питон 3 только компилит и запускает, дебан я так понял не прогнать?
gsomix: Pyhesty, PyCharm. Но и Visual Studio тоже должна уметь в дебаг. По крайней мере в документации написано. :)
https://docs.microsoft.com/en-us/visualstudio/python/debugging-python-in-visual-studio?view=vs-2019
Pyhesty: понял спасибо, но очень странно выглядит в визуалке, вмето того, что бы подсветить где ошибка вываливает портянку в отдельном окне консоли где неразборчиво ошибки то ли линковщика то ли ещё чего
mykeich: Pyhesty а что такое дебаг в питоне?
Pyhesty: ну пошагово с просмотром переменных... =) не выводить же каждый чих в консоль...
mykeich: аа, сто лет таким не пользовался
mykeich: я выводом в консоль делаю, даже локально
Pyhesty: бррр... =))) ну может быть )))
BorisZ: wlesavo ульян говорил что в дискорде сказали что офф контест будет не раньше ноября, у эйлера готов свой контест, но его не будут запускать до официального
BorisZ: я тоже кстати встроенным дебагером перестал пользоваться как-то постепенно, в консоль удобнее, в файлик на крайняк можно
BorisZ: у питона линковцика не должно быть, это стектрейс вываливается в консоль по умолчанию если ошибка не поймана
Pyhesty: консоль видимо очень удобна для отладки алгоритма, типа контеста, а вот для поиска ошибки в алгоритме, иногда проще пройти по шагам посмотреть переменные и понять что не так... но может дело привычки и опыта, если не совершать очевидных ошибок и понимать язык может это и не так часто требуется
wlesavo: BorisZ а, спс, я просто помню эйлер говорил что на рассмотрении у стафа его игра лежит, а то что не будет таки до офф контеста сейчас только слышу. но вообще это понятно с одной стороны, потому что многие хорошие игроки так сильно вложились в ooc что потом на офф контест уже не пошли, может поэтому не хотят опять так близко проводить два
tutubalin: YurkovAS да, оптимизации заточены под валидаторы, увы. настоящего соревнования не получается.
YurkovAS: наверное это даже и не плохо, что можно посчитать подольше на домашнем компе. надо просто привыкнуть к такому подходу.
wlesavo: да, в этом чтото есть, просто получается что сетап под задачу чуть сложнее
wlesavo: в идеале все-таки чтобы было что-то ближе к NS, там это как-то реально по честному
wlesavo: ну либо как в быках коровах у меня, квазирандомные валидаторы, можно было сделать еще лучше, но я поздно сообразил
wlesavo: и илледана явно провальный подход в серчрейсе, сделать тыщу валидаторов в надежде что людям будет лень хардкодить, чтобы их в тот же день захардкодили, но при этом сабмиты лагают
tutubalin: проблема с совсем рандомными валидаторами в том, что в Optimization для разных инпутов разный результат. Кому-то попадётся лёгкий валидатор, кому-то сложный. В итоге будут делать 100500 ресабмитов.
Uljahn: кому-то попадётся проц на 3ГГц, кому-то на 2.2 :)
wlesavo: ух ты, вышлют повторно футболку, спасибо тибо
mabu: Почему когда Я вхожу в чаты, то все сразу же замолкают?
tutubalin: посмотри на время отправки сообщений
Uljahn: минут 10-15 подождать ответа (а то и дольше) - тут обычное дело
BorisZ: заговор молчания
BorisZ: первое правило заговорщика - никогда не сознавайся что ты заговорщик
Uljahn: Automaton2000: Achievement unlocked - Discussion killer.
Automaton2000: но не факт что правильно
gsomix: C Automaton2000 душевнее разговаривать, чем с AutomatonNN? :)
Automaton2000: я так и не понял
AutomatonNN: да лан тогда на то что ты просто так проблема с буржуйся по контесту
Uljahn: 2000-й обучается на логах и строит более-менее стройные фразы, иногда целиком из логов копирует, а NN - это замороженная нейронка, обученная на старых логах, онлайн не обучается, фразы часто несогласованные
Uljahn: AutomatonNN: согласуй фразу по хардкору
AutomatonNN: haha. the same of the same of the angle the part only in the same archited by AutomatonNN
Uljahn: в общаке NN любит начинать фразу с ника эйлера, потому что был обучен на логах, в которых кубер доставал эйлера вопросами
tutubalin: а что-то мне кажется AutomatonNN всё-таки учится. очень уж у него знакомые интонации
AutomatonNN: Да понятно что не могу ли он на минимакс запилить и получить свой код на подсказки на джаве
Uljahn: скорее уровень шизофазии похожий у AutomatonNN
AutomatonNN: фух
MadKnight: ну чё посоны как успехи?
MadKnight: tutubalin чё пилишь?
gybson_samara: монте-карло в бэтмэн2 пока не зашел
MadKnight: а как ты его там применять собирался?
gybson_samara: очень просто
gybson_samara: двигаешься из точки A в точку B
ConstantBolzmann: уж лучше тогда бинарное дерево с отсевом половины
gybson_samara: в зависимости от "больше-дальше" проводишь из точки A или B окружность радиусом AB - в нее попадать нельзя, дальше херачишь рандомные координаты и выбираешь ту, которая чаще других выпала и не попала в круг
gybson_samara: дальше добавляешь круги
gybson_samara: половину кейсов проходит
gybson_samara: лучше резать полигон, но как же лениво
ConstantBolzmann: в бсп нету рандома
ConstantBolzmann: и в рейкасте
gybson_samara: кроме того, полигон режется по касательной к вышеописанной окружности, а значит есть неточность
ConstantBolzmann: бомбу же можно увидеть просто у ней именно в этом пазле нету свойства значка
ConstantBolzmann: надо найти метод как искать на плоскости глазом человека
gybson_samara: нет
gybson_samara: в инпутах нет картинки
ConstantBolzmann: аналог минное поле в низине
ConstantBolzmann: ну ты правильно делаешь как еще то найти но наверняка есть чтото пространственное
gybson_samara: есть
gybson_samara: бинарный поиск на плоскости, но надо резат ьполигон
gybson_samara: ну или два бинарных поиска =)
ConstantBolzmann: я просто смори чо представляю по второму бетмену типо я стою в углу и везде нету ни одной плоскости вершинной я типо вижу только пол 100 километров на 100 километров и кудато типо нельзя наступать
ConstantBolzmann: тоесть луч не канает
ConstantBolzmann: глаз не видит бомбу
ConstantBolzmann: прыгать кстати логично в такой ситуации
ConstantBolzmann: как в том видосе
gybson_samara: проблема в том, что тебе надо попасть на клетку с бомбой, а не избежать ее
ConstantBolzmann: да да
ConstantBolzmann: я к тому и веду
gybson_samara: но если кто-то придумает пазл, в котором надо не наступить, то будет тоже круто
ConstantBolzmann: мне нравятся технологии где видно
ConstantBolzmann: интересно
ConstantBolzmann: у меня была идея пазла по думу но знаний не хватает
ConstantBolzmann: надо написать 2 нейрона
ConstantBolzmann: 1 наводит второй стреляет
ConstantBolzmann: и мишени типо на екране то тут то там
ConstantBolzmann: там можно експериментировать сначало просто с этим потом добавлять нейроны на устойчивость воздуху гравитации и ветру
ConstantBolzmann: я пока не понимаю монте карло
ConstantBolzmann: в интеграле понимаю а с этими типо симуляциями нет пока
Uljahn: фух
YurkovAS: монте карло - выбрать рандомный ход из доступных.
и повторяем нужное кол-во раз или до конца партии. потом оцениваем, если это лучшая оценка, то сохраняем себе эти ходы.
YurkovAS: вчера проверил монте карло в code-vs-zombies и удивился, как хорошо играет. почти в 2 раза лучше предыдущих ga и sa
YurkovAS: но может, потому, что неправильно использова га (са) - на ограниченное кол-во ходов. а монте карло до конца партии.
amurushkin: так ты для ga сгенери много ходов. и мутируй по много. и не забывай с прошлого хода лучший подтягивать со сдвигом на 1 ход
gybson_samara: если вариантов овер много, то монте-карло ГА победит
vrabosh: вы на все это замарачиваетесь и пишете на Си симуляцию?
vrabosh: или както подругому?
gybson_samara: Если ты с ГА сразу попадаешь в пул плохих решений, то там вся надежда на мутацию
gybson_samara: vrabosh почему на си? просто воспроизводишь логику рефери и воспроизводишь N ходов вперед
YurkovAS: щас проверю
vrabosh: просто хочу тоже начать га изучать
vrabosh: ну на Си быстрее всего оно будет работать
gybson_samara: YurkovAS можно попробовать МК сгенерить пул примерно хороших решений и их прогнать через ГА
vrabosh: ну ладно там трон симулиовать, но другие же мультиплееры это сложно..
vrabosh: долго
vrabosh: или может качаете java клиент игры и через него?
YurkovAS: в общем у меня там не совсем ГА, а 1 поколение, которое постоянно улучшаем. так проще запрогать, а с пачками по 10 поколений, как-то не показывало профита (в ксб игрался давно).
vrabosh: начну наверно с трона.. там проще всего симулировать.
vrabosh: и что за бетман кстати?
Uljahn: https://www.codingame.com/training/expert/shadows-of-the-knight-episode-2
Uljahn: первый эпизод легко решается бинарным поиском, а второй уже посложнее
vrabosh: понял.. просто не думал, что на пазлы га даже тренят
Uljahn: ГА - это в CvZ, наверное
Uljahn: CvZ - https://www.codingame.com/multiplayer/optimization/code-vs-zombies
vrabosh: я первый простым способом решил.. ищел всторону там где точка на пол пути.. и так он доходил по пол пути
Uljahn: это и есть binary search, ещё вроде методом половинного деления называют, или дихотомии
vrabosh: про хомби знаю, классная задача.. там мне кажется можно математически решить..
BorisZ: YurkovAS про то что у зомбей в ГА надо до конца доигрывать - это очень хорошо ты подметил, надо будет попробовать тоже
BorisZ: у меня там фиксированная длина хромосомы, это и правда на первых ходах может в неправильном направлении подтолкнуть
Uljahn: так же и в марслендере с ГА надо до конца лететь
BorisZ: да, я как раз сделал марслендер недавно, там я до конца проигрывал, в зомби надо так же сделать
YurkovAS: BorisZ и еще там на первом ходу 1 секунда ttl
vrabosh: начинается неделя ГА:)
wlesavo: YurkovAS ГА с одним поколением это по сути просто жадный алгоритм
vrabosh: вы сами симуляцию с нуля писали точную?
wlesavo: если еще температуру добавить то будет отжиг
vrabosh: этож наверно пару дней ее писать и отестировывасть, чтоб быть уверенным что 100% работает
BorisZ: в зомби то совсем простая симуляция - точки передвинуть да расстояния проверить
wlesavo: у меня в марслендере такая штука как раз, только с постоянной температурой
BorisZ: нет ни коллизий ни препятствий
wlesavo: ну с постоянной температурой правда это уже e-гриди
amurushkin: самая сложная сима наверное что я писал это ктулху
Uljahn: клятые слэшеры
vrabosh: запустилибы они чтото здесь удобное для тестирования га и мл, на платной основе хотябы, где можно выбирать мощности. былобы круто.
Uljahn: мечтай
vrabosh: а то писать симуляцию отбивает все желание.. если и писать.. то уже точно доконца идти и в топ10 хотябы
Uljahn: тут numba выпрашивать приходится, а ты про мл
wlesavo: симуляция по мне так не всегда самое сложное даже
Uljahn: особенно, если рефери есть
BorisZ: vrabosh проверить любую симу не обязательно ГА просто прямо на месте - если твое предсказание на предыдущем ходу не совпало с теми позициями что тебе рефери дает на текущем то падаешь
BorisZ: пара строчек кода
BorisZ: только округления надо учесть - рефери дает инты а внутри флоаты
Uljahn: или даблы
BorisZ: ну это к зомби подходит по крайней мере, если с противником то не подойдет наверное метода )
vrabosh: ок. подключаюсь к вам:) Вы только не разбигайтесь, буду вас вопросами мучать по ГА в течени месяца.
vrabosh: наверно начну с трона.
gybson_samara: жалко за скилы в алгоритмах очень непросто денег получить =)
gybson_samara: Uljahn кинь ему ссылку на туториал местный по ГА
gybson_samara: который мне кидал, очень толковый
Uljahn: https://www.codingame.com/playgrounds/334/genetic-algorithms/history
Uljahn: на питоне к тому же
gybson_samara: себе тоже отложу, не помешает еще разок пройтись
wlesavo: трон наверное для ГА не лучший выбор, хотя не знаю, но там сильно глубокий поиск плохо работает вроде
vrabosh: мне не для топа.. просто чтобы начать изучать... а то я ленивый и создания симуляцию может все желание отбить
vrabosh: а тут если начну понимать эту тему, то мотивация появится и симуляции делать
BorisZ: зомби тогда уж лучше, тут симуляция простая, враги не мешаются поле непрерывное
vrabosh: впринципе да, можно даже начинать с 1 уровня.. где пару замби
vrabosh: у меня там как раз не очень результат..
BorisZ: тоже думаю что трон не очень подойдет, сильно зависит от врагов твои варианты, поэтому минимакс заходит там, но фиг знает конечно )
vrabosh: а как там минимакс?
vrabosh: я через вороного делаю
MadKnight: да, как там миник?
BorisZ: вороной - это оценка, а способ поиска то нужен какой-то
vrabosh: но сегодня дашло, что можно еще мой старый способ подключить.. через рекурсию проверять сколько макс ходов могу сделать, но уже в поле вороного
vrabosh: либо пилить очень быстрого вороного и тогда уже минимакс
vrabosh: но у еня получаетя только под 10 раз програть его
vrabosh: то что в тестах то и в сабмите?
vrabosh: если тоже самое, в замби там можно вручную все прописать) нет таких людей в топе?)
YurkovAS: да, скорее всего. после сабмита доступна таблица с валидаторами, там 21шт с такими же названиями сам не проверял
BorisZ: валидаторы наверное отличаются немного от тестов, но проверить можно на простых кейсах
BorisZ: чуть поменять координаты несложно чтоб принцим сохранялся
MadKnight: oui vrai
MadKnight: en vrai
BorisZ: проверил на первом тесткейсе, забил координаты хумана руками - первый валидатор не прошел
BorisZ: то есть отличаются координаты, не пройдет харкод
BorisZ: *хардкод
BorisZ: ну и собственно чтобы найти хардкод - все равно придется локально писать и гонять симу, не линейкой же и калькулятором считать максимум очков
vrabosh: как вы в питоне прорисовываете симу?
BorisZ: тут от языка не зависит, список людей, список зомби, аш - координаты
BorisZ: это есть игровой мир весь
vrabosh: я имею введу визуально както рисуете или как я текстом?)
vrabosh: массивы в консаль и этого достаточно
BorisZ: каждый ход каждый зомби шакает к ближайшему человеку, потом аш шагает, потом проверяешь кто кого схел или убил
BorisZ: пытаться рисовать мне кажется имеет смысл если игра на клетках
BorisZ: тут и поле большое, да и правила простые, не ошибешься
BorisZ: да и не надо рисоать, зачем? с рисунка не понять никаких закономерностей и не сделать никаких выводов
BorisZ: не поймешь же глазом - сколько зомби находятся на расстоянии выстрела и сколько очков это даст
QuantumQQ: фига тут на голде бот в гонках.
ConstantBolzmann: везуально можно графвизом
ConstantBolzmann: edotor.net
ConstantBolzmann: апогей симуляции и визуализации тут https://www.raidbots.com