Chat:Ru/2020-11-20

From CG community
Revision as of 11:31, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/23956705948685> Uljahn: есть CGBenchmark <img src=/a/23956705948685> Uljahn: через API создаёт игры с выбранными противник...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Uljahn: есть CGBenchmark

Uljahn: через API создаёт игры с выбранными противниками

BorisZ: по идее cgbenchmark обсчитывает даже медленнее чем сабмит - там же задержка между запусками стоит, а на арене без пауз

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

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

tomatoes: cgbenchmark имеет смысл только если в топ5 наверное

Zhmyh: спасибо, Uljahn

Uljahn: только agent_id надо будет подсунуть, или из JSON выдирать из реплеев, либо искать на http://cgstats.magusgeek.com/app

Egrace: Кто как использует ту секунду, которую дают в начале? Можно, например, просчитать общий план действий, а потом корректировать его по ходу игры за 50мс, дающихся на последующих шагах.

Egrace: или с этим никто не заморачивается, и просчитывает все заново на каждом новом ходу?

ilgiocatore: это мало что даст из-за рандома, связанного с появлением новых рецептов и новых спеллов в книге

Default avatar.png Zero0: http://chat.codingame.com/pastebin/fe3b3282-6e2f-4a7c-b8b3-33bf923240b3

ilgiocatore: мб топы этим заморачиваются, хотя они скорее кэшируют какие-то проверки в первую секунду

Default avatar.png Zero0: "есть CGBenchmark" Оно работает? Пробовали? Если я, например, настрою:

735487: да реально так и сделает

Default avatar.png Zero0: http://chat.codingame.com/pastebin/f0742c36-dbea-4b7e-9280-a60441dee46d

Default avatar.png Zero0: enemies:

 - agentId: '3190942'
   name: Uljahn 

Default avatar.png Zero0: Оно реально, загрузит мой код на сервер и будет играть мой код против вашего?

tomatoes: он по сути автоматизирует запуск кучи боев в иде

Uljahn: Zero0: оно создаст игры между указанными agent_id через обычный CG API, который используется, когда создаёшь игры через браузер в IDE

Default avatar.png Zero0: я же не могу выбрать с кем моему играть?

Egrace: можешь

Default avatar.png Zero0: :fearful:

Uljahn: удали босса, добавь другого противника, там кнопка delete внизу

Uljahn: лол

Egrace: около кнопки submit можно управлять противником

Default avatar.png Zero0: аха-аха. вот млин. что же я ни разу ни разу не попробовал , век живи, как говорится

Default avatar.png Zero0: спасибо!

Default avatar.png Zero0: огромное!

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

ilgiocatore: еще можно свой сид ставить, чтобы повторять игру в одной и той же конфигурации

Uljahn: интерфейс поход на point&click адвенчуру :)

Uljahn: *похож

735487: просто нужен визард с подсказками для новичков

Default avatar.png Zero0: меня ещё инстинктивно, кнопка delete пугает, когда вижу, работает рефлекс не нажимать, без причины:rolling_eyes:

Default avatar.png Zero0: так-то интерфейс даже приятный и понятный более-менее

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

Uljahn: я думаю, у кодеров должна быть исследовательская жилка, а то как код дебажить без неё?

Default avatar.png Zero0: Интересно, оно все тут, надолго можно залипнуть.

Default avatar.png Zero0: Ещё, что-то заинтересовало api, не подскажете, через api к "https://www.codingame.com/services/TestSession/play" json в запросе:

Default avatar.png Zero0: ["большое число, что это?",{"code":"мой код","programmingLanguageId":"C#","multi":{"agentsIds":[-1?,-2?],"gameOptions":"seed= -сид противника?-\n"}}]

Default avatar.png Zero0: есть документация?

Default avatar.png Zero0: я поиском только на какое-то платное, походу для организаций наткнулся

wlesavo: https://www.codingame.com/playgrounds/53705/contest-tools-and-workflow/introduction

Egrace: А кто-нибудь замерял, что тут шустрее работает: .Net или JVM?

Default avatar.png Zero0: "https://www.codingame.com/playgrounds/53705/contest-tools-and-workflow/introduction" это я уже читал))

Uljahn: доков нет, можно по форуму поискать, либо изучать тулзы, которые с API работают, типа того же CGBenchmark

Uljahn: Egrace: сомневаюсь, что кратный перевес будет у той или иной ВМ, скорее всего примерно одинаково

Uljahn: первый сабмит за неделю :relieved:

Uljahn: надо с днища бронзы хоть на рандоме подниматься

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

Uljahn: мда, рандом спеллов (с мультикастом), проверка варки на текущем ходе и 10 нулевых лёрнов в начале == серебро

BorisZ: Uljahn :thumbsup:

Uljahn: +2.5к мест за сабмит

BorisZ: а я нашел баг в симуляции и все мои эксперименты были поверх навоза

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

Uljahn: классическая "фича"

Uljahn: фиксишь её и падаешь в рейтинге

Uljahn: или костыль, который трогать нельзя

Uljahn: а то придёт Automaton2000 и сделает а-та-та

Automaton2000: а у тебя как успехи?

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

BorisZ: *было

Uljahn: самое смешное, numpy движок не дописан, пришлось пока отключить, набросал по-быстрому ООП говнокода ))

Uljahn: гибридный бот с реактивным двиглом и электрическим от шуруповёрта

Uljahn: Automaton2000: как тебе такое, Илон Маск?

Automaton2000: я не уверен что у меня нет

Automaton2000: как раз в том что ты не в голде?

Uljahn: Automaton2000: ну хватит троллить, в голду сложно выйти

Automaton2000: это определение может сложное, найти то просто

Uljahn: Automaton2000: троллинг модера == бан

Automaton2000: да ну, плюсы мне не нравятся, если уж учить - то раст

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

Uljahn: а у тебя что?

wlesavo: mc же

wlesavo: тоже немного баги пофиксил заиграло немного хуже, так в районе 40-50го места могу сабмитнуться но это потолок

wlesavo: выходные есть как раз, думаю чето успею сделать

Uljahn: а как выбирает первый экшон? как первый в лучшей цепочке?

Uljahn: вернее, не первый, а тот, который идёт в аутпутр

Uljahn: -р

Uljahn: вот тоже думаю типа MC сделать, только ещё UCB1 приколотить, как в крестиках у меня

wlesavo: да, для каждой цепочки храню первый экшн

Uljahn: блин, надо скор нормализовать тогда

wlesavo: вообще у меня даже небольшие роллауты, 300-400 дают терпимый результат, мне кажется на этом можно до золота на питоне доехать

Uljahn: а глубина?

wlesavo: 5-7

Uljahn: спс, можно тогда и попробовать

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

NightLuna: 20 человек прошло, неплохо

Uljahn: 18 сразу, ничосе

Xyze: RiSuS ждешь пуша?)))

YurkovAS: 0.5 не хватает

wlesavo: там у них рекалк ща наверное сабмиты лягут

wlesavo: изи пуш risus

YurkovAS: а я зачем-то ресабмитнулся

wlesavo: ну ты ща все равно пройдешь наверное

RiSuS: Я немного все пропустил, но всем участникам спасибо!)

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

wlesavo: ато вроде 20 человек в легенде а среднее место не изменилось

Uljahn: ещё одна интрига - пройдёт ли хоть один питон в легу...

RiSuS: 20 человек: 1 на Java, 3 на Rust и 16 на С++

RiSuS: уже 17 на с++

MadKnight: чё, вы всё ещё копируете весь gamestate со всеми спеллами для симы?

wlesavo: нашел жесткий баг в симе на рерайте, ваще не понятно как оно работало

NightLuna: главное, чтобы не было так, что починишь, а оно станет хуже играть

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

wlesavo: о, юркова запушили

wlesavo: грац

YurkovAS: спасибо! первая лега, ура!

wlesavo: как первая? ничего себе

BorisZ: YurkovAS поздравляю!

YurkovAS: BorisZ спасибо. запушили, сам не смог.

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

wlesavo: YurkovAS а ты в кораблики и пакманов играл?

BorisZ: а некоторые балду пинают и потом симу отладить не могут

YurkovAS: wlesavo играл и до них еще играл в копание руды - везде был немного выше середины золота

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

BorisZ: wlesavo странно что ты не в леге до сих пор, я думал что ты всех порвешь честно говоря

dbf: умеешь поддержать :)

NightLuna: :laughing:

wlesavo: не ты чо, я только жопу свою пока порвал :smiley:

wlesavo: еще этот баг отвлекает от рерайта, хочется покрутить параметры опять

wlesavo: когда объект в плюсах в функцию передается он копируется?

MadKnight: ты по ссылке передаёшь?

MadKnight: или по значению?

wlesavo: если по значению

MadKnight: то значение копируется

MadKnight: ты же передаёшь значение

MadKnight: а не ссылку

MadKnight: ну камон

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

Zhmyh: да

wlesavo: да я нпонимаю что вроде так работает, но надо уточнить

MadKnight: а ты что копируешь?

wlesavo: кусок состояния для бимсерча

MadKnight: это какой кусок?)

wlesavo: ну уникальный для состояния

MadKnight: и сколько он байт размером?)

wlesavo: не мерил еще

MadKnight: ну посчитай

wlesavo: lf vyt ,s ljgbcfnm xnj-nj [jnz,s b ghjdthbnm pfgecnbncz djj,ot bkb ytn

wlesavo: ой

wlesavo: дописать бы до рабочего состояния, там уже посмотрим

MadKnight: чё на экран не смотришь когда печатаешь?)

Egrace: а что это за фетиш во все методы алгоритмов передавать итератор начала коллекции и конца коллекции?

Egrace: vector<Chromosome> chromosomes; sort(chromosomes.begin(), chromosomes.end());

Egrace: почему не сделать просто sort(chromosomes); ?

Egrace: вопрос про плюсы :)

TheCrucial: чтобы более универсально было. с++ не про краткость язык

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

Egrace: но это нужно в одном случае из сотни

Xyze: это долго и медленно

Xyze: а тут как бы из коробки )

Egrace: зато в остальных 99 случаев мне приходится писать бесполезные iter->begin() и iter->end()

Egrace: могли бы перегрузить, это вообще не проблема

Egrace: но тут какой-то мазахизм сознательный

Xyze: наверное boost перегружает, возможно

TheCrucial: https://www.codingame.com/replay/507463956 найс финал