Chat:Ru/2022-05-01
Uljahn: a-Rye: don't bring politics here, discussions should be focused on CodinGame and programming, first warning
gybson_samara: хоть в серединку голды пролезу, уже хорошо
Uljahn: да и в легу тут реально пролезть, только мне надоело ифы разгребать
a1.dk: мой бот все еще не атакует и 540 в золоте >_<
Uljahn: буду ждать, когда хайдеры вылезут,может кто нейронку натренил
a1.dk: текущий топ Nanaeda ушел в хайд играл 2деф,1атк и еще несколько ребят сильные страты показывали на тройном пуше из-за рейнджа видимости прокидывали мобов в базу
a1.dk: тоже в хайд ушли
a1.dk: перед дедлайном будет жара в леге
wlesavo: a1.dk в районе 50х мест в леге тоже чисто защитный бот есть
Xyze: а тут апиху поменяли, что в хайд можно уйти?
Xyze: раньше если бота хоть раз закоммитили, то всё, любой может с ним сыграть
Xyze: если запомнил его id внутренний
Uljahn: не поменяли вроде, а кто успел запомнить id?
Xyze: а cgstats его не пишет?
Xyze: я точно помню recurse как то хранил всех чужих ботов
Uljahn: пишет, но надо мониторить момент
Xyze: а, интересно
Xyze: ну то есть только если в истории была игра с этим ботом
Uljahn: угу, из реплея можно попробовать вытащить
Xyze: короче, если кто-то хочет прятать бота, его нельзя даже на секунду пушить
Vlad100: Доделал трекинг и запушил. Надеюсь хотя бы сохраню старое место. Если поднимусь вообще отлично будет.
Vitaliy_Kamalin: (╯°□°)╯︵ ┻━┻
wlesavo: один и тот же код на сабмите выиграывает у топ 4 и проигрывает 286ому (╯°□°)╯︵ ┻━┻
wlesavo: добавил симметрию, локально вроде что-то дало, но на сабмите чет ничего особого
FeZar97: симметрия ломается первым же контролем от врага, показалось что лучше не пытаться на нее надеяться
wlesavo: так нужно проверять идет от спавна или нет
Vlad100: Что-то плохо с трекингом. Без трекинга + 7 часов было 300 место. А сейчас пол сабмита с трекингом и 1000.
Vlad100: Часов через 7 если также плохо будет верну прошлого бота и он тогда будет итоговым.
Xyze: Vlad100 ты на ифках?
Xyze: добавь парочку еще сверху
Xyze: у тебя бот, который бегает на дистанции > 8000 от твоей базы кидает контроль на врага со словами DEFEND
Xyze: но дефента там точно быть не может, он еще просто не опасен тебе
Xyze: дальше у тебя видимо разделение по защитникам
Xyze: но ты не учитываешь щиты
Xyze: а точнее тот факт, что для убийства моба под щитом надо (health + 1) / 2 ходов
Xyze: и если у тебя (dist(mob, my_base) - 300) / 400 >= (health + 1) / 2
Xyze: то его нельзя дефать одним персонажем
Xyze: ты просто не успеешь
Xyze: точнее <= там знак
Xyze: просто посмотри как ты проигрываешь игры, и закрывай эти места
Vlad100: Да у меня там всё ifы.
Vlad100: Контроль на врагов со словами defend дальше базы - не баг, а фича. Мини атакер получается. Но всё таки надо пофиксить.
Xyze: так это, контроль на свою базу тогда
Xyze: а то ты не тянешь его дальше, а просто отгоняешь
Xyze: в своей базе
Xyze: к*
Vlad100: А смысл гнать к своей базе? Видел подобные системы как у меня. Они бы тогда на мою базу пойти могли бы. Тут наверно лучше будет куда-то в центр.
Xyze: не, если человек хотел быть у твоей базы - он был бы там
Vlad100: Жизни я вообще в оценке врагов не использую. А надо бы.
Vlad100: Ну тут уже от бота зависит
Xyze: тебе вообще не страшно притянуть к себе человека, который у себя не имеет ифок на атаку
Xyze: ну это ж серебро
Xyze: посмотри игры легенды
Xyze: обычно делают так, чтобы противник был дальше моба
Xyze: соответственно, тянешь к своей базе, при этом ты больше видишь противника
Xyze: так как можешь протащить его на 4400 в лучшем случае, что примерно 5 игровых ходов
Xyze: моб за 5 игровых ходов уйдет еще на 2000
Xyze: вот тебе разница в дистанции в 6к
Xyze: и если даже ты перестанешь его контролить, ему просто бежать обратно около 7-8 ходов до убегающего моба
Xyze: ну а твоё решение ставит их просто рядом =)
Xyze: учитывая, что для тебя это поменять 1 строку - попробуй
Vlad100: Уже
Xyze: но скорее всего это всё же 2 ифки, так как если противник рядом с базой, то дефенд - всё таки дефенд
Xyze: и так делать уже не стоит
Vlad100: Я так и сделал
Xyze: и сразу заливай, будь как wlesavo )))
Khao: может не надо? :(
Xyze: ахаххааха
Vlad100: Если он смог пройти в золото делая так то надо)
Xyze: не, он так в легенде спамит уже
Vlad100: А. Тогда точно надо.
Khao: что, впрочем, не означает, что он и в золоте спамил
Xyze: на самом деле много кто так делает, это просто всем тормозит
Xyze: обычно играться с параметрами начинают в леге
Xyze: ну а кто будет делать это из иде, лучше пуш и посмотреть сразу много игр
Xyze: только хайдеры, которые за 1 контест запускают из иде 1000+ игр
Xyze: что как бэ не лучше
Vlad100: Хорошо то как. 3 из 10 побед. Радует что хотя бы не из-за нового контрола.
Xyze: Vlad100 неправильно ифку сделал
Xyze: =)
Xyze: https://www.codingame.com/replay/630506638
Vlad100: Ой.
Vlad100: Только что заметил
Xyze: тебе бы еще пофиксить 2 контрола на 1 моба
Xyze: пуш в базу противника иногда пушит моба за карту
Xyze: не учел вектор самой скорости
Xyze: не пушь в угол базы, лучше понадежнее, тупо в саму базу, когда ты в атаке
Vlad100: Теперь вроде правильный иф должен быть
Xyze: wlesavo писал, что надо считать вектор от моба к базе
Vlad100: Саму базу это к центру круга или к границе базы?
Xyze: это прям то, что тебе дают в инпуте
Xyze: 0 0 либо 17к 9к
Vlad100: А ну я так и делаю же.
Vlad100: Или я что-то не понял?
Xyze: ты пушишь в базу, прям выводишь её?
Xyze: или как я говорю, считаешь вектор?
Vlad100: Пуш - ветер?
Xyze: да
Vlad100: А ой
Vlad100: Нет я просто дальше от базы кидаю
Vlad100: Даже не проверял ифы ветра в атаке
Vlad100: Так как не замечал чтобы их боты вообще использовали
Xyze: если моб на точке (0, 5000) а база противника на (0, 0) и ты на точке (1000, 5000) что выведешь?
Xyze: правильный ответ (1000, 0) чтобы ты реально отправил его вверх
Xyze: а не наискосок
Xyze: только лучше проверять мои цифры, я на ходу плохо считаю, а симе это не важно =)
Vlad100: Примерно понял
Vlad100: Мне для этого надо доделать то как у меня работают вектора. Начинал но потом забил начав делать трекинг.
Xyze: трекинг довольно продвинутая фигня
Xyze: у меня его например нет
Xyze: до сих пор, это таска на сегодня
Vlad100: Довольно легко его так-то сделать.
Xyze: тогда уточни, ты про симметричный спаун или реально помнить про увиденных мобов и обновлять их позиции пока они в тумане?
Vlad100: Второе
Xyze: просто сделать?
Vlad100: Правильнее сказать не сложно.
Xyze: контроль врага меняет направление, и допустим это еще можно отловить, но а как тебе тройной пуш моба в базу из тумана?
Xyze: ты просто в 1 ход теряешь хп не узнав ничего, а трекер еще и не уберет моба из трекуемых
Vlad100: Главное не забывать удалять врагов которые за картой и те которые должны быть видны но их нету.
Vlad100: И вообще-то он его скорее всего уберёт.
Vlad100: Так как будет 2 варианта
Vlad100: Он удалит того моба так как увидит его через какое-то время
Vlad100: Либо он его увидит на 1 ход
Xyze: не, такая страта не видна вообще в инпутах
Xyze: но да, отловить можно, но тебя всё равно такой моб будет отвлекать пока ты не подойдешь
Vlad100: Значит он просто скоро подойдёт к базе и не увидев его трекер удалит его.
Xyze: ну профит будет, но как бы я говорю, это не для серебра
Xyze: хотя если просто и быстро, почему бы и нет
Vlad100: Вроде как сделал ветер правильный.
Xyze: https://www.codingame.com/share-replay/630546685
Xyze: посмотри как ты потерял первое хп
Vlad100: Частая проблема.
Xyze: мог же слить его
Vlad100: Причину не знаю
Xyze: =)))
Xyze: подебажь локально
Vlad100: С боссом такое редко бывает
Xyze: до босса дойти надо
Xyze: сделай вывод дебагом всего инпута через print("Debug messages...", file=sys.stderr)
Xyze: чтобы ты мог прям из реплея взять все входные данные, и сунуть себе в пичарм не отладку
Xyze: и ходи дебажь построчно, чтобы не париться на сайте
Vlad100: Окей попробую
Xyze: ну либо ручками =)
Xyze: блин, я в иде побеждаю топ 1, но если я залью, я также и буду на 200+ месте болтаться
Xyze: а никто на плюсах не ловил такое malloc(): unaligned tcache chunk detected
Vlad100: В этот раз как на подбор все 9 проигрышей из-за того что боты резко идут к другой цели
Vlad100: Вообще. Я знаю как это исправить. Но из-за этого появится скорее всего другой баг.
Khao: ну всё, сабмиты встали
Khao: кажись, на этом можно заканчивать
CyberEcho: Не, идут. Вчера было еще хуже.
Xyze: 20% за час
Xyze: это ну такое
Vlad100: Понадеюсь что мой сабмит хотя бы пройдёт
ilt: Точно пройдет :)
aropan: Кто-нибудь ловил corrupted size vs. prev_size на плюсах? С чем может быть связано?
CyberEcho: Сегодня похоже день C++ memory corrupt :smiley:
aropan: Проверил календарь, вроде нет. Нужно испарвить? )
kolyaNikolay: yf gk.cf[-rjydthnf[ d nbg number?
kolyaNikolay: ойб раскладку забыл поменять;)
CyberEcho: В таких контестах кстати надо использовать at() вместо [] везде где это возможно. За несколько раиков и КГ не одного повреждения памяти не было.
aropan: Еще словил free(): invalid next size (fast)
Vlad100: Кто-то может скинуть спауны пауков? Забыл сохранить.
Xyze: https://imgur.com/a/WZGf766
Vlad100: Thx
CyberEcho: В исходниках есть точные координаты https://github.com/CodinGame/SpringChallenge2022/blob/9c319c4a37d98c4153aa1049bcbcc918cd85c290/src/main/java/com/codingame/game/Configuration.java#L26
Valdemar: aropan это в играх или при тесте в иде?
aropan: При тесте.
aropan: Я выделил момент - там был безобидное создание вектора.
aropan: Понятно, что проблема может быть не конкретно в этом вектора, а что-то раньше пошло не так. Локально на конкретной итерации с теми же данными не воспроизводится. (
Anto_Gl: Это соревнование потом будет доступно в мультиплеере?
Vlad100: Что-то плоховато со всеми этими дополнениями. Скорее всего сейчас верну прошлую версию.
Sinkat: а новые условия игры на голде появляются?
gybson_samara: нет
ilt: нет
Sinkat: pasibA
mihei: скорость сабмита просто великолепная, 40% за полтора часа
Uljahn: так 950 сабмитов идёт
Uljahn: хорошо хоть в гоночках промоушнов нет массовых
mihei: в процессе контеста люди делают сабмиты, шок))
gybson_samara: 8/10, внезапно
gybson_samara: надеюсь приснится как починить атакера и влететь в легу
TheCrucial: так потестить толком уже не успеешь
mihei: я уже просто забил делать какие-то изменения, еще и половины не посчитал, а через 3-4 часа спать
gybson_samara: TheCrucial это я отложу на осень. И так первый раз в голду влез на эвенте. Но в этом эвенте босс сильвера совсем ватный.
gybson_samara: Или не первый, в пэкмене вроде тоже голда была.
aropan: Valdemar: может быть какие-то предложения были?
gybson_samara: и это я пока не врубил банальные стратегии на шилд и контроль
Valdemar: aropan у меня не ловилось такая ошибка, но если UB то должно и на реплеях воспроизводиться, по идее
aropan: Воспроизводится, но от этого не легче. )
Valdemar: гм, тогда это не баг ide проверь, что на стеке не выделяешь слишком много места, у меня с таким были проблемы но в таком случае стабильно падает
Valdemar: ты локально тем же компилятором проверяешь?
aropan: Но локально же у меня нет итераций, а только одна конкретная.
aropan: Да у меня ничего большого то и нет.
aropan: А столько там стека?
CyberEcho: corrupted size vs. prev_size - это повреждение кучи, и не связано со стеком
Xyze: у меня такая ошибка malloc(): unaligned tcache chunk detected
Xyze: но я предполагаю почему
Xyze: я вполне осознанно оставил утечку памяти
Valdemar: aropan можно скопировать инпут за весь матч и воспроизвести
Xyze: только вот раньше я падал по out of memroty какой-нить
Xyze: а щас либо флаги какие, либо я хз даже
Xyze: мб компилятор поменялся, ошибка даже не гуглится
FeZar97: ого, а можно пример того, когда утечка осознанно нужна?)
Xyze: когда мне очень сложно делитить память, ибо я очень сильно мутирую solution прямо внутри симы
Xyze: я остановился на 03 версии плюсов, соответственно не шарю за умные указатели
Xyze: поэтому посчитал что мне легко чистить, а что сложно при игре в 220 ходов в среднем 500 метров оперативы
Xyze: что влазиет в лимит 768 на коденгейме
aropan: Вот я видимо тоже выходит не шарю. )
FeZar97: понятно, я подумал что это прям настоящая необходимость, а речь про упрощение)
aropan: У меня shared_ptr.
Valdemar: у меня вообще нет указателей)
Xyze: настоящей необходимости вряд ли может быть
Xyze: если только ты не хочешь ломать поды в кубере у них грязными хаками =)
Valdemar: только сырые указатели на данные со стека в некоторых местах
Xyze: а че так, вся игра в статик массивах?
Xyze: или ты всё передаешь через & и типа и так пойдет?
Valdemar: можно же std::vector использовать, например
Xyze: ну вектора то есть
Xyze: но они хранят указатели
Valdemar: ну тогда да, но напрямую я ими не пользуюсь
Xyze: короче колдун ты
Xyze: у меня плюсы остались только для покодить тут, на работе джава, а плюсы успешно забываются
aropan: Нет указателей, нет проблем.
Valdemar: хотя у меня вообще самописный вектор используется, который обертка над сишным массивом
Valdemar: считаю, что на карте может быть максимум 30 жуков, если больше, то печаль)
aropan: double free or corruption (out)
aropan: Мне кажется я сейчас все словлю.
Xyze: ахахахаха
Xyze: это видимо лучшая реклама раста происходит
Xyze: нативная, как говорится
Valdemar: aropan если memset/memcpy используешь, проверь что не перезатираешь таблицы виртуальных функций
aropan: Нет, такого нет.
aropan: Мне кажется у меня где-то косяк в одном месте, но узнаю я о нем вдругом.
aropan: *в другом
Xyze: у меня однажды был тут топовый баг
Xyze: когда у меня куча массивов было создано
Xyze: и я зафакапил счетчик, который проходился по этому массиву
Xyze: соответственно, тут вроде виртуалки стартуют, память нефрагментированная, массивы вставали друг за другом +-
Xyze: и я ровно через 64 хода начинал перетирать другой массив
Xyze: при этом игра дальше играла
Xyze: я просто видел как бот теряет интеллект прям на ходу и начинает делать дичь
Xyze: и дальше оно падало на 300+ ходу когда терло что-то другое
Xyze: а я думал что у меня сима ловит какой-то баг, я сколько не пихал инпуты локально с 63 хода - всё нормально
Xyze: ну когда уже психанул, просто в дебагере пошел 64 хода подряд руками, заметил как то....
aropan: Xyze: не выделять и не чистить память кажется не ок - приучаешь себя к плохому, потом не отучишься. )
aropan: *но
Xyze: я могу это изи пофиксить ценой 10-15% производительности
Valdemar: aropan если писать на джаве, то может и норм)
Xyze: но так как я начал выжимать симы из-за атакера, мне очень дорого это выходит
Xyze: без него у меня 300к ходов на 40мс
aropan: А, мб, если упирается в производительность, то чего нет.
Xyze: но с атакером 60к
Xyze: ибо он супер динамический, каждый ход генерятся ходы, которые актуальны только из его позиции, и они замешиваются со статик ходами (типо просто пойти либо подуть)
Xyze: заделитишь случайно статик ход - он отвалится у защитников тоже, будет разыменовывание пустого указателя
Xyze: короче я сам накрутил, сам страдаю =)
Xyze: зато весело
aandrukhovich: как думаете, если я сейчас во второй половине в легенде (236/308), и самбитил последний раз день назад, стоит ли пересамбитить перед концом контеста?
aandrukhovich: я не уверен, но если я во второй половине лиги, то при чужих самбитах я чаще играю с теми, кто сильнее меня, проигрываю и теряю рейтинг
TheCrucial: всю легенду вроде заново проранывают. т.е. вообще не важно
aandrukhovich: а, спасибо)
Xyze: не всю
Xyze: был уже контест где было 300+ человек
Xyze: запустили реран 150
Xyze: я не думаю что тут они резко что-то изменят
aropan: Кажется заменить
aropan: typedef shared_ptr<TUnit> TUnitPtr;
aropan: На
aropan: typedef TUnit* TUnitPtr;
aropan: Лечит проблему.
aropan: Как минимум после этого локально нашел одну не ициализацию nullptr.
aropan: *инициализацию
aropan: Но даже после фикса не работало.
aropan: Xyze: считай принял твой совет, спасибо.
Xyze: =)
Xyze: пожалуйста
ilt: чуток до золота не хватает
aropan: munmap_chunk(): invalid pointer O_o
Xyze: да дичь, ну реально первый раз такое, я бы сказал массовая проблема с плюсами в ру чате
Xyze: я не читаю глобал, там не жалуются?
Xyze: не исключаю что мы тут все любители, и криво пишем, но почему так больно стало
aropan: Не, не массовая, это я вернулся. )
aropan: Пару игр поигрался и вот. )
Xyze: нас разве не 3 было?
aropan: Аааа.
aropan: Но вы вроде не жаловались. )
aropan: Вообще at это мощь.
aropan: А регуляки.
aropan: *регулярки
AntonBlockchain: а если за 5 минут до конца игры в арену запихать. то все равно нормально рассчитается? или будет слепок позиций заморожен на час 0:00?
ilt: улучшил немного код. Думаю заедет в золото :)
Xyze: красава
Xyze: хорошо пошел
Sinkat: тоже закинул на арену теперь ждать 1.5 часа пока протестит и неизвеисно закинут в голд или нет)
Xyze: так, вроде слегка починил оценку защитников
Xyze: доделать атакера, и всё
Xyze: ничего не успеваю
Jokero: я вообще как при открытии золота написал бота, который меня в это золото вывел, с тех пор, уже столько всего переписал и улучшил за эти дни, но к его результату так приблизится и не могу. пушить в оконцове его буду видимо
Sinkat: наконец начало теститься быстрее
Uljahn: питон в топе, ну наканец-та
gybson_samara: рекурс?
Uljahn: нет, и на нейронку не похоже
gybson_samara: эвристики на мои похожи, но игры смотрю, там соперники без атакующего