Chat:Ru/2021-05-10

From CG community
Jump to navigation Jump to search

Hamibar: Ого 5к в бронзе. Не помню такого

BorisZ: осенью было 7к всего, сейчас только 5300

BorisZ: сколько в бронзе было не знаю

BorisZ: наверное тогда было труднее из дерева выйти

ilt: тени же неважно с какого дерева начинать рассчитывать?

ilt: какая-то бага у меня

Hamibar: А я думал рекорд.

Hamibar: За ночь даже не потерял место. Все симу пилят похоже

Hamibar: ilt ну если просто хочешь отметить затененные то по идее неважно. А вот если сразу солнышки считать - то важно

Hamibar: ооо, я только сейчас понял, что за 1ю ричнесс дают +0.

Sbergeif: ilt неважно, только выбирать максимальную в ячейке

ilt: у меня мне кажется во всех контестах одна и та же проблема

ilt: я начиная новую фичи пилить не доделав старую/старые

Hamibar: я не боюсь того, кто пилит 10000 фич, я боюсь того - кто пилит одну 10000 часов

ilt: словил баг именно из-за недопиленной фичи

ilt: тут проблема не в долго, а в том что глаза разбегаются

miklla: у меня сейчас подход такой, допилил фичу/стадию фичи - смотрю 1 серию аниме

miklla: смотреть очень хочется, но пилятся медленно :)

Hamibar: смотря какие стадии :grinning:

miklla: или исправил 1 баг - смотрю серию :)

miklla: не исправил - не заслужил :)

Hamibar: Такой, ой тут надо единичку дописать - ну все баг исправлен!

ilt: смотри аниме и не парься

miklla: раньше так и делал

miklla: если бы не было дел, то так бы и делал, а так нормально продвигает дело, ныне контест

miklla: по-моему я не в один контест столько усилий в первые 4 дня не прилагал

miklla: обычно чиллил, пока дедлайн не подкрадётся

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

Default avatar.png Vadik_Verein: ребят а если видео с игрой перестало работать как фиксить? кто-нибудь сталкивался?

miklla: закрыть и открыть браузер

Default avatar.png Vadik_Verein: куки чистил, перезагрузка не помогает

Uljahn: в дискорде советуют аппаратное ускорение включать/выключать

ilt: а во сколько обычно серебро открывают?

ilt: как запустить игру с нужным сидом?

ilt: про сид понял seed= нужно писать

BorisZ: открывают примерно в то же время что контест стартует - вечером

ilt: обнаружил забавный баг, связанный с тем, что я ход WAIT не оценивал

ilt: а его оценка была самая высокая

BorisZ: оценка может быть нужна тут сложная какая-то

BorisZ: у меня ни черта ни заводится с простой оценкой

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

BorisZ: может тут другой случай? )

CyberEcho: А кто-то вообще оценку позиции сделал интересно?

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

BorisZ: может баг конечно где-то в симе фиг знает

BorisZ: на один ход все совпадает с тем что рефери отдает

BookSaver: А ходы противника как обсчитываешь?

BorisZ: да никак, пока черт с ними, потом добавлю

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

BorisZ: а оно фигню творит

CyberEcho: Симуляцию можно просто проверить против самого себя. На первом ходу просимулировать всю игру, результат должен совпадать с фактическим.

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

BorisZ: неизвестно кто как будет ходить через несколько ходов

BookSaver: Без учета противника даже один день правильно не обсчитать, он же тоже деревья сажает, растит и рубит. Добавь простого жадного противника на эвристиках, чтоб время не жрал. У мну бот на 5 правилах до сих пор в 200 входит.

aropan: Хм, что интересно, я нашел время, что серебро откроется через двадцать минут.

aropan: Кто знает это автоматически происходит или они там руками включают?

BorisZ: а какая разница то? )

MadKnight: aropan они настраивают и открывают по идее

MadKnight: т.е. скорее всего не в точное время будет

BorisZ: было как-то что при открытии лиги что-то не так пошло, все откатили назад

CyberEcho: > как ее просимулировать? какие ходы то подставлять? В симуляции запускаешь две копии своей стратегии и реально запускаешь две копии стратегии. Результат должен совпасть. Ну это для того, чтобы найти баги в симуляции.

BorisZ: дак стратегии то нет, симуляция должна найти самый лучший ход

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

BorisZ: дальше вопрос на миллион - что делать с теоретически верной симой

BorisZ: ну и второй вопрос - как оценивать позицию

BorisZ: он может и поважнее

ilt: второй вопрос точно важнее

BorisZ: да, согласен

BookSaver: Берем все возможные ходы и противника, считаем результирующие позиции, берем для каждой позиции все возможные ходы, считаем для каждого все возможные позиции.... имеем дерево с глубиной 2, 3, 4.... Для каждой ветки считаем сколько очков на ней собрали (солнышки тоже в очки пересчитываем). Выбираем лучшую ветку и делаем ход из нее.

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

aropan: @BorisZ хотел знать насколько можно ожидать движа в указанное время

aropan: @MadKnight ок, спасибо

BookSaver: Т.к. число ходов 0 -60, пусть в среднем 30, то глубина 2 требует оценки миллиона позиций, а у нас 100 мс.

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

Xyze: у меня щас слегка недописанная сима делает 300-500 просчетов хода за 2 мс

Xyze: без прагм

Xyze: я тоже уже очень хочу попробовать простейшую оценку и залить

BorisZ: в этот момент мы имеем доску с деревьями, сколько -то солнышек - и что со всем этим делать?

Xyze: BorisZ если у меня что-нить получится на простой оценке, я тебе скажу

Xyze: может реально найдешь багу на глубине

BookSaver: Где больше очков (солнышки переводим в очки, деревья переводим в очки) то и лучше

Xyze: слишком неточная оценка

Xyze: она заставит тебя собирать деревья

Xyze: и в перспективе ты будешь фармить меньше солнца

BookSaver: Не заставит, если деревья оценивать в очках

BookSaver: деревья на доске

BorisZ: BookSaver то что ты описал - это минимакс

Xyze: чесн говоря я тоже надеюсь что всё так просто

Xyze: но уже не верю в это

BorisZ: минимакс очень чуствителен к оценке, а тут очень трудно ее подобрать, неинтуитивно все

BookSaver: Как вариант оценки - полученные солнышки (т.е. если глубина 6, то все заработанные за 6 дней солнышки, а не имеющиеся на конец 6 дня

Xyze: 6 дней - это может быть очень много ходов

Xyze: 20+ на изи

BookSaver: Если бы знал прикуп, был бы на первом месте :-)

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

Xyze: щас попробую тоже

Xyze: тени бы доделать только

Xyze: очень неприятно

Sbergeif: а какая сложность с тенями?

Xyze: один раз подумоть как это запилить чтобы было достаточно быстро

aropan: А насколько быстро надо?

Sbergeif: а, быстро это боль, да

Xyze: сам еще не знаю

CyberEcho: > у меня щас слегка недописанная сима делает 300-500 просчетов хода за 2 мс

У меня полная симуляция игры занимает 0.3мс. С этим конечно далеко не уедешь :neutral_face:

Sbergeif: в смысле полная?

Xyze: с генерацией ходов было относительно просто, ну я про SEED

Xyze: полностью кешированные варианты для каждой точки

CyberEcho: > в смысле полная?

Против самого себя с первого хода до последнего.

Sbergeif: 24 дня наиболее жадных ходов?

Xyze: с 1 до 23 дня??

CyberEcho: Ага

Xyze: это ж дофига ходов

Xyze: может и норм получилось

Xyze: правда я бы ограничил глубину в любом случае, без противника уже на день 3 расхождение будет достаточно большим, чтобы всё выкинуть

Xyze: особенно если ты хочешь накрывать его тенью

Sbergeif: можно не ход противника считать, а распределение

Sbergeif: типа, солнышки * вариант, когда в этой клетке будет X

Sbergeif: тогда нет проблем с расхождением

Xyze: тогда останется проблема с невалидным ходом seed когда клетка была занята в процессе игры

Sbergeif: такое приближенное матожидание преимущества через N ходов

CyberEcho: > это ж дофига ходов

130+ ходов, выходит 2мкс на ход. Сильно много вариантов не посчитать

Xyze: ты на плюсах?

Xyze: прагмы пихнул?

CyberEcho: > прагмы пихнул?

Что за прагмы? Я надеюсь там не дебаг по умолчанию :grinning:

Xyze: угадал )

Xyze: #pragma GCC optimize("Ofast")

  1. pragma GCC optimize("inline")
  2. pragma GCC optimize("omit-frame-pointer")
  3. pragma GCC optimize("unroll-loops")

aropan: Прагмы мощь, не знаю как я до этого без них участвовал.

Xyze: кто то вместо Ofast пишет O3 но я не разбирался как лучше

aropan: У меня такие: http://chat.codingame.com/pastebin/f64e51b2-f9df-43ec-a317-fb3c7fad46cd

Xyze: ты из жостких людей кто умеет в AVX ?

aropan: Неа. )

Xyze: или компилятор сам там наоптимизирует?

aropan: Или я это скопировал откуда-то особо не вдумываясь. )

Xyze: понял ))

aropan: Жестко у меня тогда подгорело конечно.

CyberEcho: Спасибо! Все ускорилось в 10+ раз. Теперь можно и варианты посчитать :grinning:

aropan: Я почему-то думал, что может там тачки медленные, поэтому локально быстрее работает.

Xyze: 10+, чет сильна

Xyze: мне раза в 3-4 только помогает

aropan: Где-то даже тред был о том, чтобы добавить эти опции по умолчанию. Но тогда исключения сложно отлавливать и показывать их.

Xyze: ага, там дичь будет

CyberEcho: > 10+, чет сильна

Я std::bitset везде использую. Он в дебаге наверное сильно тормозит

Xyze: для новичков неприемлимо

Xyze: опять колдуны битсетов пришли

aropan: Но мне понравился вариант сделать два компилятора.

Xyze: мне тоже пора попробовать

aropan: И каждый пусть сам выбирает.

aropan: А то мне кажется, что большинство, кто пишет на плюсах и не знает, что можно вот так дешево ускорить код.

Xyze: да хватило бы одного гайда для с++

Xyze: например при выборе этого языка в редакторе предлагает ознакомиться с фичами

Xyze: и одна галочка "не показывать больше"

Xyze: готово

Xyze: тип почему бы и нет

aropan: Тоже вариант.

Hamibar: Пора наверное начинать колдунство с битиками. А то скоро завалит костылями.

Razdva122: Парни может кому полезно будет создал для себя небольшую страничку с полезными фичами для конетста

https://razdva122.github.io/CODINGAME-SPRING/

TheCrucial: закомментированные прагмы в топ вставить - и норм

Kurs: хм, а у меня прагмы не ускорили вообще

Hamibar: Razdva122 интересно поиграться конечно.

Hamibar: Я вот думаю мб в будущей симе задать приоритет операций? точность немного снизится, но и ветвистость уменьшится

ilt: сима заработала, вот и таймауты

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

ilt: выбор и оценка идут очень долго

ilt: то что BookSaver выше писал, мне кажется точно напрямую не работает, так как эффективность сбора солнца падает в середине игры

BookSaver: Эта игра вся - про сбор солнца.

BookSaver: Не про деревья, а про сбор солнышек.

ilt: я согласен

BookSaver: Я тут баловался расстановкой деревьев. Выяснил, что на такой карте только 8 деревьев можно расставить так, что ни одно не будет затенять другое.

aropan: Деревья всего лишь емкости для солнышка.

ilt: но если ты будешь строго максимизировать солнца, то застрянешь на деревьях уровня 2

aropan: @BookSaver а что страшного в том, что что-то затенится?

BookSaver: Меньше солнышек

aropan: Это понятно.

aropan: Но может быть к тому времени когда затенится дерева уже не будет.

BookSaver: Для 13 деревьев самая выгодная расстановка (в рассчете на 6 дней) получилась такая : [0, 20, 21, 23, 24, 26, 27, 29, 30, 32, 33, 35, 36], собирает 198 из 234 солнц.

Hamibar: Самая выгодная - собирает наибольшее число солнц?

Hamibar: Можно ведь еще учитывать сколько отбирает у соперника)

BookSaver: Да, наибольшее число солнц за 6 дней. Я не делю деревья на свои и соперника, я пока ищу максимально выгодную схему посадки, стабильную по времени. За 100 мс я ее точно не рассчитаю, так что ищу оффлайн.

ilt: BookSaver только учти, что с этой расстановкой, очки за все деревья кроме 0 ты можешь не получить :)

Hamibar: Ну наверное на топовом уровне будет схема хорошо работать

BookSaver: Хз, на топовом уровне обычно сишники с симуляциями и вариациями на тему луча и монтекарло. Я не топ, точно ))

Hamibar: Я про что, что в топе люди(возможно) будут стремится к более оптимальному решению - и следовательно не ломать всю твою посадку рандомными ходами.

BookSaver: Если рандомно дерево воткнут, то оно будет страдать от моей тени столько же времени, сколько и затенять меня, только в другие дни. Если в статике считать. В динамике все сложнее :-(

Hamibar: Но это может сломать не слишком адаптивную стратегию

Hamibar: Это как книга дебютов в крестиках. Работает хорошо, если противник делает хорошие ходы

BookSaver: Серебро)

BookSaver: Спрятали, )

TheCrucial: во сколько там серебро откроют?

BookSaver: должны были уже 15 минут как. И даже открывалось. Но там был только дефолт босс, и спрятали обратно.

mabu: Шторки приоткрылись

Default avatar.png Loki2: А золото с легендой когда открываются известно ?

zuko3d: Loki2 предположительно через 2 и ещё через 2 дня

Default avatar.png Loki2: спасибо

zuko3d: ну это я из предыдущего опыта. как будет на самом деле - не знаю.

BookSaver: понеслось)

Sbergeif: почему так ждут открытия лиг? мотивирует проходить дальше?

TheCrucial: вовремя спросил)

TheCrucial: да, мотивирует, если не прошел уже)

TheCrucial: а сейчас прокинуло - можно почились)

TheCrucial: почилить*

Default avatar.png Loki2: сидел дебажил свой код, и ушло все куда то ))

Jokero: о, себеро

TheCrucial: 2к людей перекинуло. не легковат ли "проход"

chop-chop: вот вот

zuko3d: это ж серебро

zuko3d: в него проходят все, кто умеет писать хоть что-то

BorisZ: на легенде отыграются - пустят человек 10-15

TheCrucial: так у меня 30 строк кода логики. я думал до золота не докинусь на этом

zuko3d: ещё не золото

Default avatar.png Loki2: Легенда 10-15 это сурово конечно

TheCrucial: а сейчас судя по "темпу" то и до золота хватит)

zuko3d: если оставишь свои строки - за два дня народ свой код улучшит

zuko3d: в начале всегда результаты "завышены".

zuko3d: потому что некоторые люди начинают участие не с самого начала, но при этом отсылают вполне годные решения

TheCrucial: ладно, спасибо что расстроил)

TheCrucial: когда голду должны открыть примерно?

zuko3d: я бы ожидал 12-13 мая

Beard: плашка сверху с названием лиги и рейтингом кликабельная, там скоро напишут

BorisZ: да, пн среда, пятница - открытие лиг

BorisZ: в одно и то же время примерно

CyberEcho: Первая моя Silver League, и это было совсем не страшно :grinning: Надеюсь в Gold тоже минимум треть отберут.

Beard: кто нибудь знает, кто это? :D https://www.codingame.com/profile/fc95dc0400be658ec8266b29286952285877531

chop-chop: top 3% неплохо :grinning:

zuko3d: 97% пишут код хуже, чем default ai? :D

zuko3d: шок контент

TheCrucial: ну это не совсем справедливо. 97% меньше очков собрали чем дефолт AI. может просто меньше участвовали

zuko3d: не умеешь ты писать жёлтые заголовки =)

TheCrucial: да... разве что на снегу

vrabosh: а чего в сильвере бот такой слабый?

Uljahn: это не босс

Uljahn: а заглушка

Uljahn: босса выберут через два дня на уровне 150-го места сильвера, я думаю

vrabosh: надо с тенями разобраться,чтоб в золото войти тогда..

Hamibar: 150 наверное как-то мало из 2к то

vrabosh: чот мотивации нет делать. может на тени еще заставлю себя сделать чуть.

vrabosh: если мусор поудолять. меньше 100 строк код будет. сейчас с 121

Hoggins: Пытаюсь локально запустиь плэйр. Он работал, работал, но после моей войны с джавой теперь вью пишет ошибку: "Unknown library: PIXI6". Кто то может угадать что поломалось?

BorisZ: Hoggins какой плеер то ты имеешь ввиду? если cgbenchmark то в общаке лучше спрашивать, может и автор там сидит

Hoggins: А, понятно. Обновился com.codingame.gameengine а я пытался собрать со старым...

Hoggins: Плэйет - рефери

Hiker: А что типо промоушен в серебро сломался? или так и должно быть? пишут промоушен в серебро через 0 секунд и так уже достаточно давно

Uljahn: сломался, разрабов известили

miklla: если в таблице в поиске ввести meln, то будут в человека в серебре с почти одинаковым рейтингом :)

miklla: 2 человека*

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

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

miklla: лучше, конечно, попытаться на 2 хода вперёд как-то глянуть