Chat:Ru/2020-09-04

From CG community
Jump to navigation Jump to search

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 фреймворк, чтобы и графику и контролы отображать.

Default avatar.png QuantumQQ: Наконец-то дрифт освоил

gsomix: QuantumQQ, в гоночках? А что делаешь?

Default avatar.png QuantumQQ: на кольцевых, сразу без шансов. Там где рулем в разные стороны надо крутить, уже проблемы. Но сча наверно в голд зайду сразу.

Uljahn: в голде совсем другая игра начинается, до голды - это туториал, который можно на одной формуле -3Vel пройти

Default avatar.png QuantumQQ: я подозреваю :) т.к. тут даже без вычислений физических параметров подобрал код.

gsomix: QuantumQQ, удачно подобрал?

Default avatar.png QuantumQQ: наверно, щиту пока применения не найду.

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

Uljahn: чтобы не выталкивали с траектории

Uljahn: до легенды со щитами и коллизиями можно не заморачиваться

Default avatar.png QuantumQQ: а, точно. Он же не ограничен по использованию, как буст

Uljahn: хотя, в голде можно уже будет легко детектировать коллизии, там больше данных на входе будет

Default avatar.png QuantumQQ: но так, да, с дрифтом, у меня за спиной все время пока оппоненты

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

Uljahn: но это конечно не всегда работает

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

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

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

Default avatar.png 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: чуть поменять координаты несложно чтоб принцим сохранялся

Default avatar.png ДжБМ: deleguer ca

MadKnight: oui vrai

MadKnight: en vrai

BorisZ: проверил на первом тесткейсе, забил координаты хумана руками - первый валидатор не прошел

BorisZ: то есть отличаются координаты, не пройдет харкод

BorisZ: *хардкод

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

vrabosh: как вы в питоне прорисовываете симу?

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

BorisZ: это есть игровой мир весь

vrabosh: я имею введу визуально както рисуете или как я текстом?)

vrabosh: массивы в консаль и этого достаточно

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

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

BorisZ: тут и поле большое, да и правила простые, не ошибешься

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

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

Default avatar.png QuantumQQ: фига тут на голде бот в гонках.

ConstantBolzmann: везуально можно графвизом

ConstantBolzmann: edotor.net

ConstantBolzmann: апогей симуляции и визуализации тут https://www.raidbots.com