Chat:Ru/2020-11-20
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: это мало что даст из-за рандома, связанного с появлением новых рецептов и новых спеллов в книге
Zero0: http://chat.codingame.com/pastebin/fe3b3282-6e2f-4a7c-b8b3-33bf923240b3
ilgiocatore: мб топы этим заморачиваются, хотя они скорее кэшируют какие-то проверки в первую секунду
Zero0: "есть CGBenchmark" Оно работает? Пробовали? Если я, например, настрою:
735487: да реально так и сделает
Zero0: http://chat.codingame.com/pastebin/f0742c36-dbea-4b7e-9280-a60441dee46d
- agentId: '3190942' name: Uljahn
Zero0: Оно реально, загрузит мой код на сервер и будет играть мой код против вашего?
tomatoes: он по сути автоматизирует запуск кучи боев в иде
Uljahn: Zero0: оно создаст игры между указанными agent_id через обычный CG API, который используется, когда создаёшь игры через браузер в IDE
Zero0: я же не могу выбрать с кем моему играть?
Egrace: можешь
Uljahn: удали босса, добавь другого противника, там кнопка delete внизу
Uljahn: лол
Egrace: около кнопки submit можно управлять противником
Zero0: аха-аха. вот млин. что же я ни разу ни разу не попробовал , век живи, как говорится
Uljahn: ну, тут такой интерфейс - не суперочевидный, некоторые вон про форум только недавно узнали :)
ilgiocatore: еще можно свой сид ставить, чтобы повторять игру в одной и той же конфигурации
Uljahn: интерфейс поход на point&click адвенчуру :)
Uljahn: *похож
735487: просто нужен визард с подсказками для новичков
Zero0: меня ещё инстинктивно, кнопка delete пугает, когда вижу, работает рефлекс не нажимать, без причины:rolling_eyes:
Zero0: так-то интерфейс даже приятный и понятный более-менее
Uljahn: amurushkin: интерфейс заточен под тех, кому исследовать нравится, заползать во все уголки, кликать всё что кликается и не кликается :)
Uljahn: я думаю, у кодеров должна быть исследовательская жилка, а то как код дебажить без неё?
Zero0: Интересно, оно все тут, надолго можно залипнуть.
Zero0: Ещё, что-то заинтересовало api, не подскажете, через api к "https://www.codingame.com/services/TestSession/play" json в запросе:
Zero0: ["большое число, что это?",{"code":"мой код","programmingLanguageId":"C#","multi":{"agentsIds":[-1?,-2?],"gameOptions":"seed= -сид противника?-\n"}}]
Zero0: я поиском только на какое-то платное, походу для организаций наткнулся
wlesavo: https://www.codingame.com/playgrounds/53705/contest-tools-and-workflow/introduction
Egrace: А кто-нибудь замерял, что тут шустрее работает: .Net или JVM?
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 найс финал