Chat:Ru/2022-06-10

From CG community
Jump to navigation Jump to search

AntonBlockchain: @YurkovAS а что кто-то покупает исходников игровых ботов? зачем?

AntonBlockchain: платный быстрый тест - преимущество при сабмите. что тебя тестят быстро за счет других. вот за это люди готовы заплатить. за увеличение пула виртуальных серверов. заплатил -считается сразу блоками по 20-30-50 игр. не заплатил - в худшем слуячае тебя обсчитывают потому что ты второй игрок у платящих. или по 1 игре поток.

YurkovAS: @AntonBlockchain про факт покупки не знаю. Во время контеста помню просили у некоторых продать

YurkovAS: я бы конечно хотел посмотреть исходники некоторых ботов

AntonBlockchain: и сколько в принципе может стоить бот игровой? порядок цены?

tomatoes: да эт дети какие-нибудь

tomatoes: или индусы, они странноватые иногда

YurkovAS: да, они скорее всего хотели обмануть

YurkovAS: tomatoes за сколько бы ты продал исходники своего uttt?

YurkovAS: на 1-5к руб я бы свой uttt точно не продал бы, т.к. много усилий вложено

AntonBlockchain: он же у тебя остается. а он сам по себе учебный. в реальной жизни не применим

YurkovAS: @tomatoes я тебя кстати догнал в uttt http://cgstats.magusgeek.com/app/multi-tic-tac-toe/YurkovAS он уже не всегда тебе проигрывает

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

tomatoes: я недавно наоборот задумывался до какой степени стоит подсказки раздавать

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

tomatoes: и вроде и топ легенды, но как-то неинтересно же

YurkovAS: видимо я просто жмот :) мне жалко потраченных месяцев

tomatoes: в уттт думал как-то количество решеных веток в оценку добавить, но руки так и не дошли попробовать

tomatoes: боюсь снова увязнуть :sweat_smile:

wlesavo: мне в целом тложе не жалко, тоже скорее не хочется портить людям экспириенс, но некоторые вещи архитектурные конечно очень хочется посмотреть, детали вообще не интересно

AntonBlockchain: ultimate tic toc toe сам написал. совершенно тупым методом. но вот например в исходниках есть https://github.com/ar-nowaczynski/utttai

YurkovAS: tomatoes какой у тебя поиск в smash-the-code?

tomatoes: по-моему смитси

YurkovAS: ого, вглянь, плиз, точно

tomatoes: ой нет, это в покере

YurkovAS: супер нестандартная игра

tomatoes: смаш это тетрис цветной?

YurkovAS: да

YurkovAS: https://www.codingame.com/ide/puzzle/smash-the-code

tomatoes: там приорити куеуе

tomatoes: и попытки ручных эвристик

YurkovAS: это что-то типа чокудая получается?

YurkovAS: не бфс: т.е. он и вглубь быстро уходит

tomatoes: там бфс с коефициентом получается

tomatoes: который 0.8^depth, забыл как принято назыывать его

YurkovAS: но очередь одна?

tomatoes: чокудай знакомое название, но не помню что из себя представляет

tomatoes: одна

wlesavo: блин ща понял что скорее всего не получится нормально в контесте поучаствовать, может потом таки в stc начну, звучит интересно

YurkovAS: понял, спасибо!

YurkovAS: tomatoes а у тебя там по максимому скорость: битборды спец алгоритм fast connected components?

wlesavo: tomatoes по сути dfs beam search, но детали реализации не знаю конечно, все думаю как-нибудь попробовать

tomatoes: сама доска максимально в лоб без хитростей и битов

tomatoes: один из самых первых написанных ботов помоему был :thinking:

YurkovAS: значит у тебя без этого https://www.codingame.com/playgrounds/58038/fast-connected-components-for-6x12-bitboard

tomatoes: она по-моему puyo puyo называется вне кодингейма

YurkovAS: да, она

tomatoes: всяких тактик и пдф куча тоже написано

YurkovAS: да я просто не понимаю, почему плохо играет ускорил почти максимально закостылил как смог

aangairbender: tomatoes а ты на расте в одном файле пишешь?

aangairbender: а то тут на плюсах меня уже приучили в одном писать

aangairbender: :joy:

tomatoes: в разных, с гитхаба какой-то прикол стащил

aangairbender: есть какие-то вещи в расте которые мешают часто? или все нравится?

tomatoes: https://github.com/slava-sh/rust-bundler это по-моему

tomatoes: а мне кажется тут на кодингейме не столь принципиально на чем писать

tomatoes: потоков нет, асинхронности нет, если даже падает что-то, то тоже не уволят

tomatoes: изредка бывает что компилятор не понимает что ничего в этом лупе не сломается, и упорно не хочет собирать, приходится немного раскорячиваться

Uljahn: Automaton2000: just use the unsafe keyword :smirk:

Automaton2000: а то что я не понимаю что ты хочешь

wlesavo: решил посчитать расстояния на питоне, одна итерация поиска 2мс, я конечно не заморачивался особо, но блин, тут доска 7 на 10

YurkovAS: в поворятах?

YurkovAS: там можно все предрасчитать на первом ходу

wlesavo: хм, ну вообще да

wlesavo: надо сделать будет

YurkovAS: так у тебя там есть поиск? мс?

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

YurkovAS: на с++ предрасчитывал все, преблем небыло [opPos][myPos]

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

Uljahn: предрасчёт - это хорошо, но как учесть вмешательство напарника

wlesavo: Uljahn для всех пар предрассчет

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

wlesavo: там ~900 пар получается

Uljahn: а потом отойти не хочет, и оказывается, что надо было идти в обход

wlesavo: you win some you lose some :smiley:

wlesavo: на самом деле даже глупый учет оппонента в бфсе лучше чем ничего

wlesavo: 780 из 870 успевает посчитать xD

YurkovAS: позиции int?

wlesavo: ага, да там оч неоптимально сделано, чтонибудь исправлю

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

gybson_samara: на питоне словарь с ходами из каждой возможной клетки делается довольно мгновенно, для игр типа пакмана или ктулху

wlesavo: gybson_samara это полный бфс для всех возможных пар

wlesavo: то что на плюсах делается 1кк итераций по щелчку пальцев, тут не получается сделать даже 1000

gybson_samara: wlesavo а что за игра и задача?

wlesavo: поворята, нужны расстояния до всех столов

gybson_samara: а там стол меняется от лиги к лиге?

wlesavo: нет

gybson_samara: ну тогда конечно проще поступить неспортивно и захардкодить =)

gybson_samara: А так-то надо попробовать сколько займет посчитать все пути в графе graph = {(y, x): [] for y in range(height) for x in range(width) if f[y,x]!=STATE_WALL}

gybson_samara: из каждой клетки два направления всего

wlesavo: у меня даже иногда укладывается, но с магией нумпайной разной итп, но иногда всеравно падает

gybson_samara: хотя расстояние до столов по периметру можно просто функцией от координат получить наверное

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

gybson_samara: кстати, я на пэкмане столкнулся с тем, что дико падает производительность нампи на интах, а на дефолтном типе норм

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

Uljahn: локально для интеловского проца можно и MKL поставить, а тут openBLAS какой-нить

Uljahn: угу, openBLAS, можно посмотреть с помощью np.__config__.show()

gybson_samara: я просто прифигел от того, что сразу словил тайм-аут, а тип обратно вернул и все нормально

kolyaNikolay: А как отсортировать решённые контрибушионы?

kolyaNikolay: ой contribution'ы

wlesavo: если именно на вкладке community то боюсь что никак

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

wlesavo: если бы я был еще в бронзе примерно в этот момент я бы начал переписывать на плюсы))