Chat:Ru/2022-04-24
Chibikko: 14.5к зарегистрировались. Меньше 5к в лидерборде. Остальным не участвуют?
BorisZ: кто-то давно подписался и забыл уже, я вот редко пользуюсь почтой под которой тут зереген
BorisZ: но 5к это и так много, были контесты на которых по 1-2к было участников всего
PavRus: А что за лиги, если не секрет? О чём речь ведёте?
a1.dk: можешь лидерборд прошлого контеста посмотреть
a1.dk: https://www.codingame.com/contests/spring-challenge-2021/leaderboard/global
a1.dk: там можешь выбрать лиги
a1.dk: так вот у всех лиг кроме легендарной есть бос которого нужно обойти чтобы пройти в следующую
a1.dk: пока ты не обошел боса ты остаешься в лиге и не переходишь в следующую
PavRus: Понял. Спасибо за объяснения
BorisZ: PavRus сейчас прямо идет контест - это типа главное событие на КГ, бывает раз в полгода\год https://www.codingame.com/contests/spring-challenge-2022
PavRus: Да, про контест знаю, зарегался там. Но думаю, что пока мне ещё рано - задача кажется сложноватой.
BorisZ: в топ попасть сложно конечно, но простого бота написать чтобы он что-то делал разумное легко, буквально пару десятков строк, час-другй времени, потом глядишь втянешься )
PavRus: Да. Я также думал
PavRus: Но меня смущает кое-что: как будто нужно знать какие-нибудь "спец. алгоритмы по мат. моделированию (симуляции)" А то я смогу в основном только if и тому подобные. (это не значит, что я знаю только "if и тому подобные")
BorisZ: все эти алгоритмы сложные - для топовых ботов, можно на ифах достаточно хорошо встать
tutubalin: PavRus в своём первом контесте я зашёл в топ20 чисто на ифах
tutubalin: ну поиск расстояния через BFS ещё был, но это же 8 класс
BorisZ: бывали контесты на которых поиковые алгоритмы плохо работали, так что и в топе были обычные боты, этот контест похоже тоже из таких
Uljahn: проблема с ифами - они разрастаются быстрее, чем способность их контролировать
Uljahn: спец алгоритмы в этом плане проще
Uljahn: MCTS, например, вообще не требует оценочной фукнции
PavRus: Я понял вас. Вы дали мне веру, что писать бота не так сложно и не обязательно использовать какой-то замудрённый алгоритм. Спасибо вам всем.
Uljahn: но и требования по времени в этом случае возрастают
Uljahn: всего 50 мс дают на ход, особо не посимулируешь
Uljahn: если бы поле было поменьше, да без тумана, тут бы битборды сразу прикрутили
Uljahn: для бронзы достаточно считать расстояния до опасных монстров и пинать ближнайшего к базе
Uljahn: *ближайшего
dbf: PavRus, ждём тебя в лидерборде :)
Uljahn: потом спеллы прикрутить и можно уже в серебро пробиться
Uljahn: в общаке говорят, wild mana копится за счёт пребывания героев за пределами базы
dbf: да, там kovi силён в наборе маны
PavRus: dbf, Я пока тогда лучше на зомби потренируюсь :slight_smile: А в следующий раз пойду на контест - просто уже мало времени его проходить(
tutubalin: а в конце чисто по wild mana, или сперва по оставшемуся здоровью смотрят?
Uljahn: сперва здоровье
dbf: PavRus, сейчас все в контест играют и намного веселее поучаствовать, чем в стороне сидеть. Тут и потренируешься
Uljahn: угу,ь такой шанс
dbf: Еще больше недели осталось, т.е. 3 выходных, а бота простого можно за день накидать и потом болеть за него в таблице :)
Uljahn: мультиплееры никуда не денутся
a1.dk: самый простой нормально работающий на оборону бот это уже середина лидерборда,
PavRus: Больше недели:hushed: Там же вроде 10 дней, и как я понимал, на неделе уже должно закончиться,
a1.dk: контест будет длиться еще 8 суток
a1.dk: там слева вверху таймер обратного отсчета
a1.dk: на странице с кодом
PavRus: Ага, понял, не увидел сразу таймер) Тогда попробую соревноваться.
dbf: :thumbsup:
PavRus: Я правильно понимаю, что мой бот бьётся с ботами других игроков, а не компьютерных, за базу?
Uljahn: монстры-пауки управляются программой игры, герои соперника - программой соперника
Uljahn: есть особый соперник - босс лиги, такой же бот, как и у других игроков, но он задаёт сложность попадания в следующую лигу
Uljahn: т.е. боты других игроков - такие же программы, как пишешь ты, но возможно на других языках, не очень понял про "компьютерные"
PavRus: "не очень понял про "компьютерные"" - ты всё объяснил)
Uljahn: программа игры - т.н. рефери (код выложен на гитхабе), служит для организации матча двух игроков, создаёт среду (движок игры), обеспечивает ввод-вывод, расчёт состояний сущностей, начисление очков и т.д.
Uljahn: следит за временем выполнения ботов игроков
PavRus: Ещё задам вопрос, по другой теме, пока все здесь) А в чём суть сертификата? Я думал задачи будут сложные (усложняться), а так по мне они получились простыми, где-то повторяют задания из пазлов здесь.
Uljahn: сертификация на данный момент проверяет минимальный уровень знаний
Uljahn: т.е. даже новички имеют шанс её пройти, better than 99% of professionals - это маркетинговый ход
PavRus: Да. Когда я это увидел, то и заподозрил подвох)
Uljahn: такая вот оборотная сторона геймификации и фарминга ачивок и бейджиков
Uljahn: если большинство не может пройти сертификацию, то это плохая сертификация, дискриминационная по отношению к новичкам
Uljahn: хотя, это только моё понимание ситуации, организаторы своё видение не озвучивают обычно
Uljahn: известно только, что в последние годы курс платформы переориентировался на массовость
AntonBlockchain: Сложные алгоритмы тоже на
AntonBlockchain: if - и этот путь проходят или не проходят все.
AntonBlockchain: PavRus - попасть в топ сложно. на простом совершенно коде можно попасть в бронзовую лигу. это доступно детям 9 лет.
AntonBlockchain: возможно сребряная тоже. получается разные лиги для разного уровня)
PavRus: Понял)
PavRus: Охх, не люблю я всякие сравнения. Путь в программировании у всех разный, и, соответственно, знания тоже.
AntonBlockchain: идея что участвовать сложно - неверная. вот победить да сложно.
AntonBlockchain: а попасть в середину таблицы легко
Uljahn: если понимаешь иностранные языки - во время контеста проводят множество стримов с программированием ботов в реальном времени, можно там идей почерпнуть
AntonBlockchain: там прямо в зописании задачи есть сслыка на ютуб с кодом в питоен который проходит в бронзу. просто переписать с видео
PavRus: Я считаю, что это жульничество) (про стримы) Вроде как это, так и большинство ресурсов опирается на то, что из других источников не рекомендуют брать коды, а только использовать свой.
Uljahn: угу, суть не в том, чтобы попасть в бронзу, а научиться кодить так, чтобы попадать в бронзу
AntonBlockchain: идея рассказана. повторить ее не сложно.
AntonBlockchain: на лбом языке.
AntonBlockchain: это вообще базовый уровень. взять видео 20 минут и по нему выйти в бронзу на другом языке.
AntonBlockchain: и кстати он на питоне написан длинно. у меня на js в 2 раза меньше кода
Uljahn: некоторым сложно, уровень разный у участников, повторять код без понимания - не очень продуктивно для обучения
AntonBlockchain: даже просто повторить код. и при этом вынужденно прослушать алгоритм) уже обучение.
AntonBlockchain: гораздо лучше чем сказать - это не для меня - там яйцеголовые только
Uljahn: не надо пугаться участвовать - в этом согласен
Uljahn: я в своё время пропустил несколько контестов, потом очень жалел, что не начал раньше участвовать
Uljahn: просто боялся, что плохо получится :)
wlesavo: PavRus если что все так активно уговаривают потому что знают сколько эмоций и мотивации дает даже простое участие, и хотят с тобой этим поделиться :slight_smile:
Just_Sergey: Никто не знает, когда серебряная лига откроется?
aangairbender: завтра вроде как
Uljahn: сегодня вроде
AntonBlockchain: сегодня
AntonBlockchain: вечером
Uljahn: ориентировочно через 5 часов 20 минут
Uljahn: https://clist.by/standings/spring-challenge-2022-34341526/
Uljahn: точное время никогда не сообщают, потому что им надо выбрать бота и откалибровать его в лидерборде
Uljahn: поэтому случаются задержки
wlesavo: на самом деле не так уж и мало роллаутов получается, думаю будет два миника на глубину 2-3
PavRus: И ещё, напомните пожалуйста ссылку, где можно просмотреть предыдущие сообщения? А то уже идти надо, но боюсь пропустить важные сообщения
wlesavo: https://cg.spdns.eu/wiki/Main_Page
PavRus: Спасибо
CyberEcho: Реализовал https://github.com/CodinGame/SpringChallenge2022/blob/main/config/Boss.java (это Default AI) Болтается в районе 1700 места. Надо будет попробовать из этой стратегии явные ошибки убрать.
BorisZ: мне кажется что когда переписываешь код с джавы на си, то прокачивается именно навык переписывания с джавы на си
BorisZ: если это время потратить на написание своего бота, то скорее всего был бы результат получше
BorisZ: не сочти за обесценивание (
CyberEcho: А если код рефери изучаешь, то прокачивается навык чтения на java?
input.txt: надо переписывать с джавы на луа. там нумерация массивов с 1
input.txt: тоже какой-нибудь навык прокачается
BorisZ: CyberEcho я фигню спорол, извини
BorisZ: делаю фичу, а оно играет только хуже
BorisZ: а то что надо делать - делать лень и это надолго
CyberEcho: Да норм все. Правда к написанию своей стратегии я, на самом деле, так и не приступил еще :smiley:
aropan: А кто знает сколько приблизительно в серебро попадут?
BorisZ: все время по разному как-то, вроде процентов 40 обычно
BorisZ: и ульян говорил что 40
BorisZ: но на каком-то недавнем контесте где было очень много народу было меньше
BorisZ: 25-30 было тогда, помню что все удивились
Uljahn: не знаю, какая у них там эвристика, но подстраивают под равномерное распределение народа по лигам и чтобы в леге было 100-150 к окончанию
Uljahn: контест уже засвечен в приватных хакатонах, да и многие стримеры показывают довольно сильные стратегии (уровня голды точно разрешено показывать), так что не удивлюсь, если уровень босса будет выше ожидаемого
wlesavo: да, думаю человек 800-1000 будет на входе, хотя оптимально было бы 400-600 чтобы сабмиты были поэффективнее, но мечтать не вредно конечно
Chibikko: wild mana - это мана, собранная за границей притяжения своей базы. Герой, стоящий дальше 5к от своей базы и бьющий моба получает wild mana.
Chibikko: пассивно никого не атакуя мана не капает
aangairbender: это вопрос?
aangairbender: если да, то да, не капает)
wlesavo: это к обсуждению выше, но там имелось ввиду что можно просто очень эффективно фармить вне базы
aangairbender: а сколько вы фармите wild mana в среднем
aangairbender: у меня около 800 числа
wlesavo: мне кажется это не особо важно, хотя моя сима пока только вайлд ману и может фармить))
wlesavo: ща буду как раз нападение и защиту пробовать монтекарлить
aangairbender: я в итоге решил отложить симу и написть чето на ифах
wlesavo: ну я на ифах давно написал, да, это все-таки важный первый шагчтобы стратегию спланировать в общих чертах
aangairbender: я чето протупил и взялся сразу за симу в итоге потерял мотивацию
aangairbender: сейчас опять норм
Chibikko: Я тоже на ифах буду всё писать. Сима медленная получилась, и я не могу понять как определить возможные действия, когда их бесконечно много.
Chibikko: Да, тоже вся мотивация пропала. Мне больше нравятся пошаговые, типа UTTT или Connect4. Но такие похоже уже всем приелись.
wlesavo: Chibikko движения можно ограничить легко, касты можно тоже эвристиками ограничить, типа дуть и контролить всегда в сторону базы противника
wlesavo: у меня движения по 8ми направлениям просто, для фарма это оч неплохо играет. думаю добавить еще мув к ближайшему пауку, но вроде и без этого неплохо
aangairbender: wlesavo а ты полные правила реализовал? с пересечениями стен и т.д.?
CyberEcho: Я кстати правильно понимаю, что контроль на героев выполняется мгновенно, в отличии от монстров?
Chibikko: мне кажется на всех мгновенно.
Uljahn: контроль применяется на следующий ход в порядке обработки событий
wlesavo: на всех не мгновенно наоборот
kurnevsky: @Chibikko читаешь код реферера? :)
Chibikko: жаль нельзя заставить врага применить магию
wlesavo: aangairbender ну да, округления только не трогал
tutubalin: это жесть была бы. контролишь врага, чтобы он законтролил врага, чтобы он законтролил врага
wlesavo: :smiley:
wlesavo: прикольно что от ветра можно отойти, потому что сначала мув потом ветер работает
wlesavo: решил таки МС ограничиться, ато миник как-то уж больно сложно
Beard: что такое миник? каждый раз новые термины
wlesavo: минимакс
aangairbender: МС в смысле смитси?
aangairbender: а то тут же несколько юнитов
wlesavo: не, просто монтекарло, я разделил на две группы защитники и нападающие, думаю нападающего симулировать против dummy, а потом против него защитников
wlesavo: это конечно далеко не идеально будет, но я думаю на легенду натвикаю параметров
wlesavo: в любом случае ща первую версию хотя бы допилю там решу удовлетворительно играет или нет
AntonT: wlesavo, ты имеешь ввиду, что движения героев по сбору дикой маны симой считаешь?
wlesavo: не, у меня с заклинаниями
wlesavo: но это тоже да
aangairbender: wlesavo твоя текущая питон версия кидает контроль в моих юнитов под щитом)
wlesavo: aangairbender там есть какая-то проверка, но я тогда не знал что контроль и щит не мгновенно применяются, плюс там наверняка баги, я два дня уже как забросил ее)
aangairbender: и все еще в топе, найс)
Xyze: а я правильно понимаю что контрол оверрайдит ход человека насколько, что в теории я смогу сбить каст условного ветка через 1 ход?
Xyze: ветра*
wlesavo: да
Xyze: каеф, научиться бы еще этим пользоваться
Xyze: но получается человек увидит на себе статус is_controlled и откажется кастовать
Xyze: не там имбово, не заставить потратить ману вникуда
Xyze: но всё равно занимательно
Uljahn: мана не потратится, даже если был задуман каст, потому что экшон оверрайдится полностью, насколько я понимаю
Uljahn: т.е. аутпут героя заменяется на мув
Xyze: окей, спс
tutubalin: радует, когда меняешь одну строчку и двигаешься вверх на 100 мест
xoposhiy: А кто как свою симуляцию отлаживает? Я вот уже часа три баги исправляю в своей.
BorisZ: xoposhiy раньше я так делал - считал следующий ход и запоминал, на следующем ходу кидал исключение если не совпали данные
BorisZ: с теми что рефери дал
BorisZ: но это было на другой-какой-то игре, попроще
gybson_samara: tutubalin особенно если закомментил строчку =)
wlesavo: хоть как-то заиграло попробую ща к этому нападение прикрутить https://www.codingame.com/replay/623617722
aangairbender: wlesavo опасно он конечно оставляет пауков на последний удар прям на базе
aangairbender: а можешь со мной запустить? я там немножко пытаюсь мешать оппоненту дефать
wlesavo: ну это в пределах текущей оценки нормально, тут противника пока нет
wlesavo: специально против не атакующего бота тестирую, что хотябы выжить способен
aangairbender: я понял что если ты дефаешь пауков уже на своей территории, то ты скоро проиграешь
aangairbender: так как оппонент будет давить тебя все дальше и дальше
Chibikko: блин, сначала герои ходят, затем атакуют, а уже потом мобы ходят. Это странно.
wlesavo: ого, даже задефал, не ожидал https://www.codingame.com/share-replay/623625540
wlesavo: aangairbender
wlesavo: и это двумя на самом деле, третий там чисто ману максимизирует бегает пока
Chibikko: Прямо на грани. Круто выглядит.
wlesavo: там еще баги какие-то, защитник иногда в поле убегает фармить
Uljahn: а что если пауков выдувать в сторону от вражеского форварда?
wlesavo: у меня пока ветер фиксировано в сторону базы противника, такие детали уже потом буду смотреть
wlesavo: тут бы с багами разобраться))
wlesavo: ~100к ходов за 30мс, не так уж и медленно даже
a1.dk: У тебя дефающие боты независимо действуют или есть общий слой координации?
a1.dk: 33+ ходы на паука 10хп хватило бы одного защитника
wlesavo: двое в одной симе, то что хватило бы одного это эвристика хорошая, но в симу тяжело вставить
CyberEcho: А можно наносить повреждения монстрам, которые вне видимой части карты? Кто нибудь проверял?
Valdemar: CyberEcho это как? пауки которые выходят за карту исчезают из игры
Valdemar: а если еще не ушли, то урон считается до их движения
kurnevsky: Вроде как генерятся они за картой.
kurnevsky: И вроде как, в этот момент можно.
Valdemar: в правилах написана последовательность, там пауки появляются в самый последний момент, после всех остальных действий, по рефери не проверял, но там
kurnevsky: Ну то есть, они появились, и на следующий ход до их движения на карту их можно атаковать.
Valdemar: А, это да Но они на границе карты появятся, а не снаружи
kurnevsky: ок, не вчитывался в генерацию :)
wlesavo: оооо переход
Valdemar: о, серебро)
CyberEcho: http://chat.codingame.com/pastebin/49dbafd1-f1ca-4e92-af4e-2c3e40023546
Valdemar: CyberEcho понятно, я пока в рефери не залезал
wlesavo: можно недолго побыть в топе))
CyberEcho: А на каком месте босс? Что-то не могу его найти.
Chibikko: вообще рандомно закинуло в серебро. Было 800+ место, а стало 155
Chibikko: а, пересчёт ещё идёт
wlesavo: там не всех перекинуло, пачками докидывают
wlesavo: чтобы сервера сразу не рипнулись
a1.dk: ez серебро
Valdemar: надо подождать пока все перетекут, пока непонятно с какого места боса взяли)
wlesavo: бутчер еще в серебре вроде как вообще
Uljahn: было 1.5к+ место, и тоже закинуло
wlesavo: ой в бронзе всмысле
wlesavo: ааа, они кажется сделали раздельные переходы какието
wlesavo: или не, вообще ничего не понимаю
input.txt: было ~150, не закинуло
a1.dk: еще закинет, меня на ~400 перекинуло
Valdemar: input.txt надо улучшать бота
AntonT: меня с 700 закинуло Оо
Valdemar: они похоже пересчет пачками делают
Valdemar: чтобы сервера не умерли
CyberEcho: Похоже Boss3 == Default AI
kda: А золото завтра ?
Valdemar: Default это вообще непонятно что) Но знаю, что его логика периодически меняется
Uljahn: золото послезавтра по идее, новые лиги каждые два дня
Valdemar: На прошлых контестах ловил wtf, когда в легенде внезапно перестаешь обыгрывать default)
wlesavo: 1500 человек уже, призрачные надежды на маленькое серебро растворились
Uljahn: 2к лучше, чем 4.5к, как раз почти 40%
Chibikko: как медленно пересчитывается
dbf: там 2000 почти считается
Valdemar: wlesavo в легенду же все равно человек 10-20 пустят, мясорубка еще впереди)
wlesavo: да не, просто сабмиты не очень показательные сейчас, так то понятно
wlesavo: но кстати скорее всего будет больше в легенде
Uljahn: похоже, что в серебре дают больше игр на сабмит, т.е. рейтинг будет точнее
FeZar97: было бы круто, если бы пауки меняли траекторию и бежали на твою базу, если ты их атакуешь за пределами радиуса 5000 от базы
wlesavo: кстати да, антуража бы прибавило
input.txt: а им дальше 5000 не видно где твоя база)
input.txt: да и это был бы бесплатный контрол
wlesavo: так не на чужую а на свою
aropan: kda: скорее после завтра, через два дня https://clist.by/standings/spring-challenge-2022-34341526/
Uljahn: https://www.codingame.com/replay/623722348 раш в два героя
Uljahn: 66 ходов и gg, без разведки будет тяжело в топе
CyberEcho: Придется на всех пауков, которые идут в сторону своей базы, вешать щит :grinning:
CaptainGreen: Не подскажетл ли великий олл, что изменилось в правилах в серебрянной лиге? Чой-то недотумкаю..
wlesavo: CaptainGreen ничего
Chibikko: А за ссылки в надписях не наказывают? Это же спам получается.
Uljahn: пока не наказывают, да и мессейджи можно отключить
Uljahn: в дискорде спрашивали про гипотетическую ситуацию с оскорблениями в мессейджах, админы не ответили
dbf: неприятный труг от blasterpoard, но пока он не занял топ-1 с этим :)
dbf: трюк т.е.
dbf: а так, кажется, может придется подстраиваться под противника, kovi уже так делает
Xyze: он не залил код кажись
wlesavo: это скорее случайность, да и там больно далеко от базы убежали фармить, в любом случае опасно это
Xyze: это реплей из иде
Xyze: ибо его залитый код просто фармит 1к маны
Uljahn: да, он поделился в общаке
wlesavo: вообще если у него именно финишер такой эффективный это круто конечно
tutubalin: блин. перед уходом из дома отправил бота на арену. вернулся - он в серебре. теперь не понятно, лучше он был предыдущей версии или нет
CyberEcho: Отправь старую, калибровка минут 10 занимает.
wlesavo: сейчас точно нет, у меня с открытия 12% игр всего
Vitaliy_Kamalin: я ничего не сабмитил с момента, как попал в бронзу и у меня 21%...
wlesavo: ага, у меня 16, надеюсь до завтра досчитает что-нибудь
AntonBlockchain: если никого не пропустили побеждает тот кто больше ПОТРАТИЛ маны?
dbf: Нет, согласно описанию Wild Mana в правилах бронзы
AntonBlockchain: а прочитал дикая мана
AntonBlockchain: radius of your base. это сколько?
AntonBlockchain: чтобы определить дикая мана упадет или нет
AntonBlockchain: 5000
aangairbender: кстати в случае одновременного щита и контроля будет котроль на 1 ход а потом 12 ходов щит, я раньше думал что контроль можно будет повторить