Chat:Ru/2022-05-01

From CG community
Jump to navigation Jump to search

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: эвристики на мои похожи, но игры смотрю, там соперники без атакующего