Chat:Ru/2021-05-10
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 строчек теней, но там какие-то баги, пока не могу в арену выпустить
Vadik_Verein: ребят а если видео с игрой перестало работать как фиксить? кто-нибудь сталкивался?
miklla: закрыть и открыть браузер
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")
- pragma GCC optimize("inline")
- pragma GCC optimize("omit-frame-pointer")
- 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: Шторки приоткрылись
Loki2: А золото с легендой когда открываются известно ?
zuko3d: Loki2 предположительно через 2 и ещё через 2 дня
zuko3d: ну это я из предыдущего опыта. как будет на самом деле - не знаю.
BookSaver: понеслось)
Sbergeif: почему так ждут открытия лиг? мотивирует проходить дальше?
TheCrucial: вовремя спросил)
TheCrucial: да, мотивирует, если не прошел уже)
TheCrucial: а сейчас прокинуло - можно почились)
TheCrucial: почилить*
Loki2: сидел дебажил свой код, и ушло все куда то ))
Jokero: о, себеро
TheCrucial: 2к людей перекинуло. не легковат ли "проход"
chop-chop: вот вот
zuko3d: это ж серебро
zuko3d: в него проходят все, кто умеет писать хоть что-то
BorisZ: на легенде отыграются - пустят человек 10-15
TheCrucial: так у меня 30 строк кода логики. я думал до золота не докинусь на этом
zuko3d: ещё не золото
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 хода вперёд как-то глянуть