Chat:Ru/2022-04-22

From CG community
Jump to navigation Jump to search

BorisZ: внутри позиции хранятся в double а в инпутах дается инт, рефери хранит позиции между раундами, правильно я понл ведь?

BorisZ: выходит будет накапливаться ошибка округления если позиции каждый ход из инпутов берем?

BorisZ: а из-за тумана мы не действий врага не видим ни мобов которые уходят из области видимости

aangairbender: внутри в даблах, а у нас инты, это да

aangairbender: из-за этого как я понимаю бот может думать что можно достать до юнита заклинанием, а по факту растояние больше

BorisZ: угу

aangairbender: это неприятно конечно(

BorisZ: или думать что бот еще не на базе а он уже на базе и так далее

aangairbender: но своих ботов можно гарантировано отслеживать

aangairbender: начальные позиции если целые и потом все ходы известны

aangairbender: но не хочется над этим заморачиваться

Chibikko: расчитывается в double, но по окончании каждого хода в рефери всё до целого округляется. Так-что погрешностей быть не должно при считывании из инпутов.

BorisZ: ну так то да, карта большая, можно тупо отнимать 1 от расстояния чтоб наверняка )

Chibikko: там похоже всё так сделано, даже скорости жуков до интов округляются после изменения их траектории

tutubalin: а скорость тоже округляется?

tutubalin: значит у них скорость не 400

aangairbender: скорость константа

Chibikko: вектор скорости не константа

tutubalin: а округление синуса - не константа

Chibikko: и надо учитывать, что округление там хитрое. Симметрия карты учитывается, чтобы на противоположных сторонах округлялось симметрично

aangairbender: Chibikko а где именно округляют позиции, а то я не нашел

aangairbender: только сегодня собираюсь писать симулятор, еще не все просмотрел

Chibikko: в рефери поищи symmetricTruncate. Это и есть округление. В 7 местах применяется.

aangairbender: https://www.codingame.com/replay/621640474 103 тик, ловко красный меня оттащил

BorisZ: Chibikko допустим скорость 1.45, внутри координата 1.45, тебе на выход дали 1, на следующий ход она внутри 2.90, тебе дали 2, на следующий ход ты думаешь что она будет 3.45, то есть 3 а она внутри уже 4.35 - тебе дадут 4

Chibikko: BorisZ. Внутри она всегда констанат между ходами. Всё что тебе в инпуте даётся, так-же и внутри в целых числах.

Chibikko: *всегда целая

BorisZ: в рефери написано что координаты в даблах

Chibikko: это для промежуточных расчётов. Чтобы сумму векторов складывать, например. Но после расчётов округляется.

BorisZ: ткни меня в то место где округляется, я не нашел (

Chibikko: https://github.com/CodinGame/SpringChallenge2022/blob/fbb4d12a07aa632b632d748d6c9a78a2b25e50ea/src/main/java/com/codingame/game/Referee.java#L514

BorisZ: Chibikko и правда, спасибо) я искал в конце хода

BorisZ: и обрезается так как в описании сказано - к своей базе, я это мимо ушей пропустил тоже

Uljahn: шилд на пауков кто-то уже вешает?

BorisZ: топы вешают, я смотрел реплеи

Chibikko: он от ветра не защищает. Думаю на пауков бесполезно вешать

Chibikko: Хотя у контроля радиус больше. Может и есть смысл

BorisZ: вроде защищает от ветра шилд

BorisZ: https://www.codingame.com/replay/621617015

BorisZ: 124 ход

BorisZ: я попытался сдуть паука с базы а он не сдулся

tutubalin: скорость 400. моб идёт на 45 градусов: это 282.8 по x и по y. округляем до 283. итого реальная скорость 400,2

Uljahn: это к центру или от центра?

Chibikko: BorisZ, может и защищает. Но там спорный случай: в тот же тик паук на базу наступил.

tutubalin: это чисто пример

Uljahn: а что за wild mana, набитая вне базы, по которой ничья разрешается? её в реплее не показывают?

Uljahn: Chibikko: https://www.codingame.com/replay/621558782 в самом конце видно

BorisZ: tutubalin округляется не скорость а финальная позиция = старт + скорость

Uljahn: BorisZ: эффективная скорость при этом изменяется

Chibikko: Uljahn, ну тогда это имба.

BorisZ: mob.position = mob.position.add(mob.getSpeed()).symmetricTruncate(symmetryOrigin);

tutubalin: BorisZ но скорость нам тоже округлённую присылают

BorisZ: да, понял

BorisZ: mob.setSpeed(base.sub(mob.position).normalize().mult(distanceToStep).truncate());

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

BorisZ: в смысле округленный вектор может дать реальную скорость больше как ты говорил

BorisZ: но это вроде не важно, мы же можем у себя это повторить

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

BorisZ: вроде получается что можно не хранить

BorisZ: мобы находятся именно в тех точках, которые даны в рефери на начало хода

BorisZ: физически )

BorisZ: в узлах сетки то есть. А мы когда у себя будем следующий ход симулировать, повторяем манипуляции из рефери

Default avatar.png GROBoVOz: Markov Text Generation С# хэлп

Default avatar.png Aliev: всем ку

Default avatar.png GROBoVOz: ПИСЬКА БОБРА

Default avatar.png GROBoVOz: ПИСЬКА БОБРА

Default avatar.png GROBoVOz: КТО ПОДСКАЖЕТ

Default avatar.png GROBoVOz: КТО ПОКАЖЕТ

Default avatar.png GROBoVOz: ГДЕ ОНА

Default avatar.png GROBoVOz: ГДЕ ОНА


aangairbender: Uljahn тут кое-кто хочет мут

srdkna: пииисичка бобрааа

aropan: BorisZ: реально скорость не может быть больше - вектор скорости обрезается.

aropan: Хотя ладно, там где округление координат идет, а не скорости, то может быть. (

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

BorisZ: получится точка конечная на дистанции от 399 до 401

BorisZ: в зависимости от того как округлять

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

aropan: mob.setSpeed(base.sub(mob.position).normalize().mult(distanceToStep).truncate());

aropan: Вот в таком движении у тебя не получится 401.

aropan: Потому что здесь скорость режется.

Default avatar.png djallaudinov: нахуй вы это решаете подсказки есть

aropan: djallaudinov: ?

AntonBlockchain: тут же челендж за 30 футболок 1000 лучших синьеров- помидоров будут 10 дней кодить. больше чем на работе). те кто не понимает что это круто учит "свободная касса"

Default avatar.png Abdula: :sunglasses:

Duryndin_Nikolay: бибиджон

Uljahn: за спам и оскорбления тут банят, читайте правила https://www.codingame.com/playgrounds/40701/contribute---help/code-of-conduct

Duryndin_Nikolay: сколько будет стоить чистка

FeZar97: а когда серебро откроют?

Uljahn: в пнд

Uljahn: как обычно

Default avatar.png djallaudinov: где отыеты

FeZar97: поведение босса в бронзе как то скейлится относительно тех ботов, которые сейчас в топе висят?

FeZar97: типо когда откроют бронзу и топы туда перетекут бронзовый босс станет проще или нет?

FeZar97: когда откроют серебро*

BorisZ: FeZar97 да, боссом станет один из участников, который будет стоять примерно на той позиции что нужно отсечь

Uljahn: ты как первый раз участвуешь, хотя в профиле куча контестов

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

BorisZ: точнее не сам участник а его код на тот момент )

Uljahn: в серебро что-то около 40% от бронзы проходит плюс минус два слона

AntonBlockchain: а если прошлые челенджи решать сейчас, они тоже попадут в статистику челеджей в рейтинг или нет?

Uljahn: нет

Uljahn: в статистику мульти попадут

Uljahn: bot AI games

AntonBlockchain: идеально!

Uljahn: ?

CyberEcho: >>> за спам и оскорбления тут банят

Надо преподавателю, который их сюда сгоняет, сказать, чтобы он еще и их сообщения мониторил.

FeZar97: а куда делся бот из чатика?)

Uljahn: Automaton2000: где он делся?

Automaton2000: если у тебя сварено 3 бутылочки, то тебе ж нет смысла варить ещё 5

FeZar97: мда, он нас всех переживет)

FeZar97: Automaton2000 ты в контесте будешь участвовать?

Automaton2000: у меня ещё в tron эта задача вставала, но тогда я её не решил

Default avatar.png Abdula: 123

Anto_Gl: 456

Uljahn: кик за флуд, в следующий раз будет вечный бан

tutubalin: странно. 10 боёв на арене отыграла и остановилась

Uljahn: это у всех так

Uljahn: бои висят, прогресс не идёт

Uljahn: сабмитнул два часа назад, 33% накапало и встало

wlesavo: час назад сабмитнул, 12 игр

wlesavo: у меня у этой версий стабильный винрейт против топ 5-10 но пока дойдет до туда уже ночь будет наверное

wlesavo: если админы не придут порядок навести

dbf: судя по росту записей с Computing в рейтинге, пока нет улучшений...

dbf: вот что значит давно не делать нормальных соревнований, а проводить всякие квесты :)

aangairbender: wlesavo уже с поиском страта?

wlesavo: не, пока идеи тестирую на питоне

wlesavo: впринципе понятно вроде куда поиск прикручивать, думаю на выходных как раз попробую на плюсы переписать если время будет

wlesavo: у меня по одной игре гдето в пол часа докидывает) такими темпами к открытию серебра как раз досчитается))

Egrace: Жуки, как я понял, траекторию не меняют?

Uljahn: меняют при определённых условиях

wlesavo: если его сдуть законтролить или если зайдет на базу

Egrace: ага, понял, спасибо

dbf: я сначала подумал, что это типа ghostbusters и перебор будет простой заруливать, но, кажется, заклинания очень важны

wlesavo: да, маны очень много, и заклинания все очень эффективные

tutubalin: в том числе имеет смысл ставить щит на жуков

Egrace: Как вам контест? Интереснее чем ведьмы прошлогодние?

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

wlesavo: по мне так интереснее и чем ведьмы и чем деревья

dbf: в ведьмах симуляция была проще :joy:

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

wlesavo: еще бы сабмиты не стояли

aangairbender: выглядит как раик а не кг)

CyberEcho: А есть какое нибудь условие для выхода из game loop?

CyberEcho: Чтобы общую стату напечатать.

BorisZ: еще на botters of the galaxy похожа, которая типа доты

dbf: у меня такие игры обычно плохо получаются, надо много изучать всякие тонкости и эвристики, а не перебор делать :joy:

BorisZ: CyberEcho 220 раундов или жизнь любой базы = 0

BorisZ: но про жизнь базы наверное доподлинно не узнать если ты не рефери

wlesavo: CyberEcho печатай каждый ход просто))

fexolm: ребят, это нормально, что у меня почти все отведенное время занимает ввод/вывод?

gybson_samara: нет

fexolm: а сколько он занимает +- у вас?)

gybson_samara: скорее всего неверно считаешь, особенно вывод

fexolm: мб, надо проверить

gybson_samara: ввод-вывод не занимает существенного времени, если сообщение отладки в циклы не ставить =)

BorisZ: fexolm начинать замер надо после чтения последнего инпута, заканчивать перед перед последним аутпутом

BorisZ: ну и между инпутами и между аутпутами не делать вычислений для надежности

fexolm: хм, так и делаю... я бы кинул код, но наверное так нельзя :D

BorisZ: иначе считается время потраченное рефери и соперника

fexolm: а, стоп

fexolm: т.е время чтения не считается за время работы программы?

BorisZ: угу

fexolm: ну тогда норм, спасибо)

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

BorisZ: тебя, врага, режери

fexolm: :)

gybson_samara: а если между инпутами посчитать что-то?

BorisZ: рефери тогда это время как потраченное посчитает

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

gybson_samara: не весь же инпут сразу считывается

BorisZ: по разному можно считывать у себя конечно, но рефери именно записал в твой stdin кучу байт и запустил свой таймер

BorisZ: как долго эти байты ты сам считываешь - для него неважно

Vitaliy_Kamalin: League opening: 1650812395318

gybson_samara: аааа

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

mihei: начало отсчета после первого инпута, вроде как

BorisZ: mihei да наверное так формально точнее

wlesavo: https://imgur.com/vZyuvP9

BorisZ: wlesavo научный подход :thumbsup:

kurnevsky: А я правильно понимаю, что этот чат - не дискорд? Или его еще можно где-то найти помимо сайта codingame?

kurnevsky: (если в профиле выставлять не русскоговорящую страну, этот чат у меня пропаданет :) )

TheCrucial: join ru со слешем вроде откроет этот чатик

Uljahn: это xmpp чат, можно подключиться к CG чат-серверу через внешний клиент типа Pidgin или Psy

kurnevsky: Спасибо, работает :)

Uljahn: а, ты про конкретный канал, куда автоматом коннектит по указанной в профиле стране

kurnevsky: Ага, про него.

BudAlNik: Всем привет! А SHIELD защищает от WIND?

Uljahn: да

Uljahn: топы вешают шилд на пауков вблизи вражеской базы

Uljahn: о, кажись игры пошли

wlesavo: ага, главное не сглазить)

fexolm: ребят, а тут как-то можно дебажную отрисовку добавить?

wlesavo: как на раике нет

fexolm: эх

wlesavo: но можно сообщения выводить сверху

wlesavo: через пробел после команды

fexolm: ага, это видел, спасибо)

Uljahn: в плеере есть режим дебага, там побольше инфы

tutubalin: о, бои попёрли вроде

Uljahn: то прут, то опять не прут

dabino: а придцмали уже общепринятое название контеста? как файл назвать? ))

dabino: придумали?

Uljahn: что-то типа SpiderBusters

wlesavo: да просто spiders

wlesavo: хм, нормально сабмит пошел, мож доползет куда-нибудь в топ15 хотябы

tutubalin: у меня папка Bugs, а класс Monster

Uljahn: MonsterBugs

Uljahn: Automaton2000: Debug the monsters

Automaton2000: aropan если в повторе включить debug overlay, то видно что паук не заходит на базу вообще

tutubalin: но официальное название: Brunets in Blue vs Blonds in Red In The Biggest De-Bugging Session of 2022

dabino: spiders.hs тогда, спасибо!

BorisZ: в рефери пауки называются мобами

BorisZ: все переделывать придется

BorisZ: а проект SpringChallenge2022

BorisZ: шах и мат

aropan: Automaton2000: это глюки какие-то или ты повторно написал мне сообщение?

Automaton2000: хоть гугл говорит, что существует полиномиальный алгоритм для выяснения изоморфизма двух графов степеней не выше d, но там жесть какая-то ...

mihei: +

mihei: упс

Uljahn: не глюки, он на логах чата обучается

Uljahn: недавно сообщения годичной давности повторял про контест с ведьмами

Uljahn: 2к в бронзе...

gybson_samara: как рефери себе локально утащить и локально разрабатывать? примерно то понятно, но может какие гайды есть, тонкости

BookSaver: http://chat.codingame.com/pastebin/1f5719bb-5111-43d7-99ea-5300627e612a

wlesavo: думаю пришло время переписывать на плюсы

gybson_samara: внезапно

wlesavo: внезапно этой игре 4 года?)

gybson_samara: рано как-то питон сдал =)

gybson_samara: еще даже сильвер не открыли

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

gybson_samara: тоже верно

tutubalin: а как теперь смотреть, кто на каком месте из друзей?

tutubalin: мне показывает только компанию и школу. а Following не показывает

wlesavo: в либдерборде можно отфильтровать только

wlesavo: но там абсолютный ранг не показывает(

tutubalin: но только скажет, что ты на 1 месте, а я на 4м, что не совсем верно

wlesavo: ну да, не понятнозачем так сделали

wlesavo: может если удалить компанию и школу появятся друзья?))

tutubalin: тоже об этом подумал :)

Uljahn: https://www.codingame.com/contests/spring-challenge-2022/leaderboard/global?column=CODINGAMER&value=FOLLOWING

tutubalin: о!

tutubalin: Automaton2000 меджик пипл вуду пипл

Automaton2000: полагаю, что cp-3vel как раз на этот угол и отклоняет

wlesavo: ух ты, магия

Vitaliy_Kamalin: А Wind стакается чтоли?

Vitaliy_Kamalin: У меня павук улетел на пол карты

tutubalin: да. в правилах вроде это даже упоминается

tutubalin: If an entity is being moved via a WIND from multiple sources at once, it will move to the sum of all given directions.

Uljahn: под direction надо понимать полный вектор перемещения, хотя у нас обычно для задания направлений используют юнит-векторы единичной длины

tutubalin: If an entity is being moved via a CONTROL from multiple sources at once, it will move to the average of all computed destinations.

tutubalin: то есть для CONTROL - average, для WIND - sum.

Uljahn: ну тут да, control изменяет направление, а не перемещает

Uljahn: юнит противника на 800 переместится под контролем, даже если не собирался двигаться?

Uljahn: а, не обязательно на 800, можно и меньше задать

inoryy: ух шустрые ребята за день с 15 на 350 сбросили

xoposhiy: После команды SPELL CONTROL на следующий тик игра дает на вход монстра с ещё старым значением скорости, не обновленным. Кто-то сталкивался с таким? Или меня глючит?

xoposhiy: Визуализатор уже показывает, что паук к врагу идет, а на вход скорость такая, как будто он все ещё ко мне.

CyberEcho: В правилах так и написано, что CONTROL применяется только через ход.

wlesavo: да, и щит тоже не мгновенный

xoposhiy: Точно, спасибо, разобрался.

Jokero: не пойму, вражеского солдата взять под контроль Spell CONTROL нельзя?

aangairbender: можно

aangairbender: если не под щитом

Jokero: не выходит чет, CONTROL 5 17630 9000 Bad command координаты после id это же любая точка на карте, куда его можно послать?

aangairbender: да, но может твоя цель дальше 2200 от тебя?

Jokero: да не, посчитал, не дальше. Может то что я его на координаты базы посылаю ошибка выходит. Попробую в центр карты послать

tutubalin: а он не под щитом?