Chat:Ru/2020-05-13

From CG community
Jump to navigation Jump to search

WhiteCrow: Или там какой-то непредсказуемый астар?

ashelkov: ну явно не как твой бфс)

WhiteCrow: ashelkov м,

WhiteCrow: М?

YurkovAS: wlesavo спасибо! еще монте-карло используют? это же с глубиной 1? рандомно меняем ходы и оцениваем?

WhiteCrow: Xanrum исходники проверяющей системы доступны

WhiteCrow: Я сделал примерно как там, но теперь у меня ничего не работает :/

WhiteCrow: В плане порядка обхода

Ivan_Legion: я дикстру использую

WhiteCrow: Может, мне прекратить выпендриваться и начать выводить точную клетку, куда я хочу?..

wlesavo: YurkovAS я да, но кто как

WhiteCrow: Да ну, бред какой-то....

ashelkov: я еще ничего не использую - вывожу точную клетку

wlesavo: спокойной ночи :slight_smile:

Xanrum: какие то умные алгоритмы у всех..

Cypher_8: Народ, а что за "cover" предлагается загрузить в профиле?

ashelkov: обложка профайла чисто картинка

Cypher_8: Я догадался, что это какая-то обложка. Это бэкграунд? Или иконка где-то?

ashelkov: наведи на иконку в чате - на фоне аватара - ковер

Cypher_8: А...всё, нашёл. Но всё равно спасибо за ответ! ^_^

Uljahn: ахах ковёр, это 5

Dmitry_Mandzyuk: Uljahn; поделись опытом, как заставить своих паков не сталкиваться?

Uljahn: запоминать последнее положение, и если оно равно текущему - выбирать другую цель

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

Uljahn: это про "не долбиться 200 ходов"

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

Dmitry_Mandzyuk: а ходов ведь стало больше двух сотен

Uljahn: нет, ходов 200 максимум, но фреймов может быть больше из-за скорости

Dmitry_Mandzyuk: о как, я подумал убрали ограничение в 200

Dmitry_Mandzyuk: в правилах надпись исчезла про 200 ходов кажись

Uljahn: https://cg.spdns.eu/wiki/FAQ - вся суть проблемы таймаутов раста

735487: поменял 1 строчку залез в топ бронзы ))) но босса 1 раз только дали

Uljahn: жиза

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

Dmitry_Mandzyuk: а вот еще интересный вопрос, я отмечаю позиции в которых был, а вот где были враги я отмечать не могу так как не всегда их вижу из-за этого получается что мои паки иногда едят "призрачные точки" там где сами не были а противник уже все сожрал

Default avatar.png Akarachudra: Uljahn там причины не в этом. Суть в том, что теперь поддерживаются препроцессоры DEBUG в IDE. Можно на шарпе тоже написать #if DEBUG Crash(); #endif и у соперников бот тоже будет падать.

Dmitry_Mandzyuk: была у кого такая проблема?

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

Dmitry_Mandzyuk: так это я делаю

Uljahn: начальные позиции вражеских паков известны - они симметричны

Uljahn: Akarachudra: про это тоже была дискуссия в дискорде

Dmitry_Mandzyuk: ну это тоже да, а вот когда они невидимо ходят?

Uljahn: тогда нужен трекинг и предсказание

Dmitry_Mandzyuk: блин а я как назло свое таро где-то потерял:laughing:

Uljahn: в начальные несколько ходов ты можешь расчитать, куда максимально добегут твои и вражеские паки, получается две территории - одна твоя, другая врагов, или по-научному - диаграмма Вороного :)

Uljahn: *рассчитать

Dmitry_Mandzyuk: да читал я про нее уже)))

Dmitry_Mandzyuk: в итоге мне дейкстра больше понравилась

Dmitry_Mandzyuk: но всеравно до конца не реализовал

Uljahn: эм, дейкстра для другого

Dmitry_Mandzyuk: ну там же ближайший путь к ноде

Dmitry_Mandzyuk: вот у меня паки и собирают ближайшие точки и отмечают где были

Dmitry_Mandzyuk: вроде оно

Uljahn: так тебе надо правильно ноды выбирать, чтобы не бежать на вражескую территорию, где всё уже съедено, скорее всего

Dmitry_Mandzyuk: ну или похоже

Dmitry_Mandzyuk: да, в этом то и проблема

Uljahn: ну и отмечай, где уже были твои паки, а какие закоулки не подсвечены ещё

Dmitry_Mandzyuk: в конце когда моих пара и враг один, мои упрямо едят воздух

Uljahn: т.е. нужна ещё карта видимости

Dmitry_Mandzyuk: типа чтобы открывать места где еще не был?

Uljahn: очевидно

Dmitry_Mandzyuk: ну как бы они так и делают

Uljahn: тогда постарайся съедать в первую очередь суперпелеты на своей территории, и грамотно используй скорость

Dmitry_Mandzyuk: пытался даже переключиться на поедание всего подряд в определенных моментах, всеравно босс меня на две точки зараза обошел)))

Dmitry_Mandzyuk: суперпеллеты само собой))) еще первую деревянную только ими прошел

ashelkov: на то он и босс)

Dmitry_Mandzyuk: а как грамотно ускоряться?

ashelkov: всегда если нет опасностей

Uljahn: хз)

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

Dmitry_Mandzyuk: а вот ктонибудь пробовал нейронную сеть забабахать?

Uljahn: это фантастика

Dmitry_Mandzyuk: почему?

ashelkov: не бывает такого)

Uljahn: правила слишком сложные

Dmitry_Mandzyuk: я видел где-то про гоночные машинки видео

Uljahn: в гоночках есть нейронки

Dmitry_Mandzyuk: так она там фигачит только в путь

Uljahn: и в некоторых других мульти

Dmitry_Mandzyuk: ну а здесь максимальный счет

Uljahn: нейросети - не панацея, у них довольно узкий круг применения

Dmitry_Mandzyuk: да я понимаю что не панацея

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

Uljahn: к тому же, тут ограничение 100к символов на код, как ты нейронку впихнёшь нормальную?

Dmitry_Mandzyuk: а, все-таки есть ограничение, я не знал

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

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

Dmitry_Mandzyuk: то есть она не анализирует?

Uljahn: она на данных "обучается", какие данные на входе, такие и выводы на выходе

Uljahn: garbage in - garbage out

Uljahn: обычно нейронки всё равно совмещают с поисковыми алгоритмами

Uljahn: т.е. отводят им роль функции оценки

Dmitry_Mandzyuk: ты писал их? я пока только немного знаю, даже не пытался

Uljahn: ну, я несколько онлайн курсов прошёл, и мой энтузиази поутих)

Uljahn: *энтузиазм

Dmitry_Mandzyuk: энтузиази это важно)))

zuko3d: нейронку неудобно ещё впихивать, т.к. нет хороших мелких библиотек для работы с ними

Uljahn: надо хотя бы примерно представлять затраты вычислительных ресурсов для обучения и применения топовых нейронок, таких как GPT2, openAI Five, AlphaStar и т.д., тогда все вопросы отпадут

Uljahn: zuko3d: впихивать на конечные устройства?

Uljahn: типа TensorLight?

Uljahn: Tensorflow Lite

zuko3d: нене, я имел в виду конкретно контесты

zuko3d: с учётом ограничения 100к символов и всяких ограничений по времени

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

Uljahn: под ограничения есть тоже подходы, типа обучения с учётом квантизации (quantization aware training) или teacher-student models

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

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

Uljahn: это не техническая проблема

zuko3d: ммм?

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

Uljahn: вон рекурс вообще свой фреймворк с нуля написал за месяц

Uljahn: для обучения нейронок

zuko3d: а, ну мб... просто вот идёт контест 10 дней - тут сложно что-то успеть написать

Uljahn: естественно, нужны домашние заготовки, вся инфраструктура

Uljahn: чтобы только вставил и играй

zuko3d: ну я уже делал что-то похожее для COde of Magic (или как-то так он назывался), но до конца не допилил

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

zuko3d: ага, тут часто встречаются похожие идеи. Тот же MCTS очень часто выглядит полезным, поэтому один раз написал какой-то шаблон - а дальше его уже используешь. Я вот тут правда пока не стал MCTS исопльзовать, кажется лишним. Хотя мб я не прав.

Uljahn: всё равно сначала нужна сима

zuko3d: разве?

zuko3d: я вот пока без неё

zuko3d: я и не в топе, но есть ощущение, что пока ещё могу улучшить код и подняться повыше

zuko3d: Думаю, в легу можно будет без симы зайти

Uljahn: классический челендж)))

BorisZ: я думаю что полноценная сима нужна в играх с физикой, даже с неполной

BorisZ: если на клетках то большой вопрос

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

BorisZ: тут то явно нет смысла все правила разрешения коллизий повторять и так далее

zuko3d: типа запустил 10к боёв между своими ботами и смотришь, какой набор параметров лучше себя показывает

BorisZ: и без симы обрастет параметрами код ближе к концу )

zuko3d: он уже оброс, но пока параметры подобраны "на глаз" - а это такое себе

Uljahn: обычно это самые оптимальные параметры)

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

BorisZ: новые

wlesavo: у меня есть идея на миллион

Xanrum: давай, а то у меня все закончились

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

Xanrum: не таи, рассказывай ; )

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

zuko3d: что за раннеры?

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

zuko3d: ого, прям warfare

Xanrum: если у тебя есть возможность поставить блок пути - т.е. быть быстрее на траектории кратчайшего пути - не лучше ли самому быстрее взять пилюлю?

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

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

Xanrum: как такое возможно? заблочить, но не быть быстрее?

zuko3d: только если за счёт ошибки врага

zuko3d: иначе если ты смог быстрее него дойти до клетки, которая блокирует ход - то эта клетка ближе => ты сам мог бы быстрее добежать до пеллетки

Uljahn: иногда две больших пелетки рядом с одним паком, т.е. надо выбирать, к которой бежать

wlesavo: да, когда одному паку нужно подобрать две большие пелетки

Uljahn: zuko3d: если клетка с большой пелеткой на одном расстоянии и тип паков одинаковый - можно заблочить

Uljahn: *на одинаковом

735487: щас я вам дам еще идею ))

735487: если есть участок карты куда ведет только 1 проход и там есть враги можно его закрыть

wlesavo: ты опоздал на три дня)

Uljahn: имеет смысл, если этот участок маленький

wlesavo: у eulera брутфорсовый перебор убийств в тупиках

Uljahn: не, он про отсечение части карты

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

wlesavo: ладно*

Uljahn: да, тупиков и закоулков мало

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

Uljahn: а вот если рашить на границу диаграммы Вороного и стараться обчищать территорию соперника, а потом откатываться в свой угол уже, блокируя его по возможности?

Uljahn: если б не цилиндр, могло бы прокатить

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

Uljahn: не очень частая

Uljahn: но запилить стоит что-то на этот случай

wlesavo: но вот первый попавшийся реплей https://www.codingame.com/share-replay/462593041

Uljahn: как и на случай, когда два пака в соседних клетках спавнятся

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

wlesavo: ладно, пойду работать а как золото откроют ченить прикручу

wlesavo: вроде засабмитился на 60, надеюсь на золото хватит

Hamibar: перебирать параметры может оказаться хорошей идеей. Изменил только длины путей, которые ищу и сразу смог задержаться в топ20.

Hamibar: Вернее сделал их динамичными

Hamibar: Чем больше ход, тем длиннее ищу пути

wlesavo: Hamibar а теперь ресабмитни)

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

metahom: я в ООС в легу попал перебором вариантов ))

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

metahom: насчет следующего контеста ничего не слышно? скоро будет или через полгода?

Hiker: Привет, а как-то можно быстро понимать на каком месте в текущем контесте твой оппонент текущий по ласт боям?

Hiker: там если мышкой навести показывает его место в глобальном рейтинге

Hiker: если на него кликнуть, тоже кидает на его профиль, где этой инфы нету

Hamibar: они вроде говорили, что будут раз в пол года примерно.

Hiker: только, если в другой вкладке в лидерборде смотреть

BorisZ: metahom после окончания текущего вывесят анонс, там хот примерные сроки будут

BorisZ: Hiker есть расширение cg enhancer - с ним показывает место оппонента

Hiker: это просто раширение для браузера?

BorisZ: на форуме поиском тему найти, там инструкции

Hiker: спс

metahom: BorisZ, спасибо )


wlesavo: да, удобная штука

Hiker: остался 1 вопрос, где тут форум)

wlesavo: просто в гугле вбей

BorisZ: если в иде то на левой панели под аватаркой

Hiker: видимо gc spunk

BorisZ: не спунк не про это и он уже не работает больше года

wlesavo: https://www.codingame.com/forum/t/cg-enhancer/59441 первая ссылка в гугле

Hiker: прикольно. вероятно у мнея другой гугал. спасибо.

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

Hamibar: Ну после того, как золото отроют увидим. Чего гадать.

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

wlesavo: в золоте должно быть попроще

wlesavo: по крайней мере ранг постабильнее

dbf: скорее бы открыли, пока я вниз не уехал :)

MadKnight: 4-5 часов продержишься?)

dbf: если перестанут слать, то да

MadKnight: а если не перестанут?)

dbf: лучше бы перестали...

MadKnight: так а ты сам почему перестал?

MadKnight: давай вместе с ними

MadKnight: пока ты перестаёшь, враг качается

Default avatar.png Mirartes: сколько в сильвере людей?

wlesavo: 812

Default avatar.png Mirartes: нормас

Default avatar.png Mirartes: а то в бронзу пролетели даже нубы

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

Xanrum: наоборот - раньше отборочные из дерева были проще - достаточно инпуты считать

Uljahn: ну прямо

Uljahn: может ты с раиком путаешь :smirk:

735487: это в доте были в вуде такие боссы что сразу в сильвер проходили?

Uljahn: Xanrum: у тебя в профиле других контестов нет, откуда инфа? или это не первый твой акк?

Xanrum: не первый, плюс знакомые

Xanrum: с серьезным подходом - первый

735487: парадокс. когда я отключаю скорость то бот подымается в разы выше

Uljahn: а свитч юзаешь?

wlesavo: погоди, ты в бронзе чтоли

wlesavo: тогда это не парадокс, там люди наверное наступают на паков с нулевым кулдауном и умирают

Xanrum: как грамотно использовать свич? с ним только ходы теряешь

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

Uljahn: т.е. иметь нулевой кулдаун, если рядом враг - выгодно?

zuko3d: блин, что за магия... был на 70-80 месте, сделал ресабмит - стал на 250...

wlesavo: конечно

Uljahn: магия рандома

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

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

wlesavo: иначе это трата хода

Uljahn: а убегать собирая пелеты не выгоднее?

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

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

Hamibar: Uljahn вроде бы выгодно, но каждый ход без использования абилки ухудшает результат

Xanrum: а не лучше вместо свча потратить ход на передвижение что б отойти?

wlesavo: amurushkin ты да, а они нет

Hamibar: а если не можешь отойти? например скорость у соперника

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

zuko3d: от этого никто не застрахован

735487: wlesavo: не понимаю как это влияет

Hamibar: да так и без скорости можно влететь

Uljahn: без скорости шанс ниже

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

735487: Uljahn: ну хз как по мне так такой случай что со скоросью что без одинаково возможен

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

wlesavo: amurushkin так ты скорость не используешь, у тебя всегда кулдаун 0

Uljahn: я даже думаю, что шанс выше более чем в два раза

wlesavo: плюс ты уверен что результат реально лучше?

wlesavo: в бронзе сабмиты еще рандомнее

Default avatar.png Borrow: почему вы думаете что топовые боты не будут пытаться есть жертв с нулевым кулдауном

Default avatar.png Borrow: рассуждая как жертва, вы типа думаете что свитч не нужен потому что топ боты осторожные

wlesavo: Borrow потому что это верная смерть

735487: wlesavo: не всегда. я ее юзаю получается только когда вижу врага ))

735487: что лучше уверен

Default avatar.png Borrow: но если жертвы думают что свитч не нужен, их надо есть

735487: без скорости стабильно захотит в топ 70 а с ней до 250 с трудом

Hamibar: Borrow а как съесть если враг всегда отойти может

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

Default avatar.png Borrow: Если у хищника скорость, а у жертвы нет.

Hamibar: кроме тупиков конечно

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

zuko3d: у тебя либо скорость, либо правильный тип

Hamibar: значит тебе должно повезти, что у тебя скорость, у врага подходящий тип, 0 кулдаун и он стоит рядом.

735487: что говорите вообще switch убрать?

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

wlesavo: amurushkin не, в бронзе точно нет

Hamibar: точнее не 0 кулдаун

Default avatar.png Borrow: По-моему, нужно изредка наступать на жертв, даже с риском для себя. Чтобы они не расслаблялись и тратили абилку на свитч почаще. Решение в смешанных стратегиях, в общем.

Uljahn: как наступать? подходить вплотную, но не пытаться съесть?

Default avatar.png Borrow: съедать

Hamibar: если свитчнешься когда у врага 0 кулдаун, то сам станешь жертвой, а не охотником.

Default avatar.png Borrow: свитчуется пусть жертва

Default avatar.png Borrow: свитч в нападении конечно не работает

Hamibar: не если ты точно можешь убить, то конечно стоит атаковать

Default avatar.png Borrow: это понятно

Default avatar.png Borrow: Но я также утверждаю, что если ты точно можешь догнать, но у жертвы КД 0, тоже надо иногда атаковать для острастки.

Uljahn: преследовать врага по пустому коридору такое себе

Hamibar: не знаю. В топах не будет это работать думаю

Default avatar.png Borrow: Преследовать вероятно не выгодно. Но если ситуация сама собой сложилась, то надо пользоваться.

Hamibar: Если ты знаешь что тебе не убежать почему не свичутся?

Uljahn: сама собой) как наивно

Uljahn: в топах такого не будет

Default avatar.png Borrow: На случай что тебя не будут есть, побоявшись что ты свитчнешься.

Default avatar.png Borrow: Тогда ты ускоряешься и отлично убегаешь.

735487: попробую без свитча. посмотрю что получится

Uljahn: а бронзовый бот юзает свитч вообще?

Uljahn: босс

Hamibar: ну это уже какие-то майндгеймс.

tutubalin: бронзовый не юзает

Uljahn: юзает :(

Hamibar: Мне кажется лучше играть наверняка.

Uljahn: 60-й фрейм https://www.codingame.com/replay/462681836

Hamibar: так ведь получается так даже лучше. Он ведь слабей становится)

735487: походу без полной переделки у меня делов особо не будет. он иногда у меня на противника находит потому что путь так пролегает :)

Uljahn: а противник видимый при этом?

Uljahn: типы анализируешь?

wlesavo: о, чуть подпушили, ну теперь точно золото

735487: противник видимый. но у меня же тут костыли )) еще и с багами наверное. хотя я упорно не дебажил чтобы понять причину почему он так делает

735487: но такое ощущение что код уворота проходит мимо а потом он идет по пути в дальнюю точку через врага

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

wlesavo: http://chat.codingame.com/pastebin/2a99d82f-4653-4298-938c-7698dc0016db

Uljahn: а если несколько врагов рядом?

wlesavo: только ближнего

wlesavo: одного из

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

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

wlesavo: предсказания есть но не очень работают

wlesavo: на перекрестке я взял у кови эвристику, что если застрял на перекрестке то переключаешься на свой тип

wlesavo: всмысле чтобы свой тип съесть

wlesavo: правда пока она отключена, но потом включу

Hamibar: а не лучше подождать пока враг свитчнется. Заодно и увидишь его тип.

wlesavo: так ты на перекрестке

wlesavo: он свичнется ты умрешь

wlesavo: ты не видишь его

Hamibar: так он свичнется и ты пройдешь в этот ход

Hamibar: и увидишь

wlesavo: ща найду игру

wlesavo: Hamibar вот вроде правильно говоришь, но почему то у него работало, ща поищу, самому интересно стало

wlesavo: а понял

wlesavo: или нет

wlesavo: хм

Hamibar: может быть это давало сильную прибавку условно до топ 150 и за счет этого он быстро влетал меньше проигрывал случайно

wlesavo: во, удачный реплей https://www.codingame.com/replay/462666687

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

wlesavo: и когда скорость юзает то умирает, что логично

Hamibar: ну как по мне тут ошибка противника. не нужно было скорость юзать

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

wlesavo: обычное использование скорости

wlesavo: он же не детектит застревание

Hamibar: кстати интересно что он на одном ходу в аналогичных случаях поступил по разному.

wlesavo: да

wlesavo: вообще интересный реплей

Xanrum: у меня поиск вариант ограничен временем в 45мс и соответственно в одинаковой ситуации может поступить поразному в зависимости от того сколько ему вычислений выделят

wlesavo: не, здесь то явная эвристика

Hamibar: не могу понять почему он первым ходом не юзнул скорость на всех

wlesavo: просто этого пака он видел за 1-2 хода до переключения

Xanrum: wallhack явно

wlesavo: я тоже не юзаю, почему то с этим играет хуже

Hamibar: ха мб я понял

wlesavo: Xanrum там с обратной стороны пак прошел

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

Hamibar: смотри паком номер 3 выгодно пройти, потому что наверху есть нетронутый участок.

Hamibar: А пак номер 4 точно знает,что наверху все собрал враг. Можно попытаться взять 1 палетку, но лучше попробовать убить

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

wlesavo: но это у него часто встречается относительно

wlesavo: смена формы когда протолкнуться не можешь

Xanrum: а эт, моих паков так же поанализируйте - как они вам? видите хоть толику ума у них?

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

wlesavo: Xanrum первое что в глаза бросилось разворот пака на 25ом фрейме

https://www.codingame.com/share-replay/462694726

wlesavo: не в плане ума а наоборот скорее

wlesavo: )))

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

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

Xanrum: да они те еще сыкуны, чуть что бегут, свичеры повсюду

WhiteCrow: Амурушкин ещё в бронзе?

WhiteCrow: Uljahn?

wlesavo: Xanrum при чем не только тот что мог съесть на повороте но в тот же ход второй парень зачем то пошел обратно в тупик

WhiteCrow: MadKnight совсем обленился :)

WhiteCrow: inoryy

WhiteCrow: Эх

Uljahn: WhiteCrow: хочешь подсказать чего или потроллить просто? :)

WhiteCrow: И Кибера нет

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

WhiteCrow: Не, хотел узнать, чего так

WhiteCrow: Забил или не выходит?

WhiteCrow: Я вот думаю, найду ли сегодня время, чтобы ещё бота подковырять

Uljahn: жизненные обстоятельства, ну и фаза луны

WhiteCrow: А то не пройду в голду и расстроюсь

WhiteCrow: NightLuna какая у тебя фаза?

Xanrum: wlesavo вот с тупиком интересно даже

WhiteCrow: Ты вроде выше была, прячешь настоящего бота?

WhiteCrow: Кстати, какие предсказания, сколько человек в голду уйдёт?

NightLuna: думаю, что 75-100

WhiteCrow: Ой-ёй

WhiteCrow: О, Ризус поднялся, а я и пропустил

wlesavo: меня в сейфзону запушили, меньше 50ти уж точно не запромоутят, я бы на 70-80 где то поставил

735487: WhiteCrow: да я в бронзе еще. кодить некогда. на работе завал

735487: я в прошлом неплохо выступил ))

WhiteCrow: Сейф-зона?

WhiteCrow: Это откуда не вылететь даже когда бот морально устарел?

WhiteCrow: :)

WhiteCrow: Короче, надо подниматься, а то потом вылезти сложнее будет

WhiteCrow: taks taks taks chto tut u nas

Uljahn: реально бронзовый босс таймится на больших картах, seed=-990993395123239300

WhiteCrow: Лол

vrabosh: осталось теперь просчитывать где противник мог быть.. и может в топ300 войду

WhiteCrow: Я это до сих пор не делаю

vrabosh: а там уже ситуации разбирать конкретно и баги вылавливать

NightLuna: этого не нужно для топ300

vrabosh: у меня чтото не заходит.. 400 вот берет

Hamibar: я тоже не делаю

WhiteCrow: https://www.codingame.com/replay/462716471

WhiteCrow: У меня такое ощущение, что я сижу низко из-за того, что не умею уворачиваться от агрессивных ботов

WhiteCrow: И они меня топят

Xanrum: просто беги от них

wlesavo: WhiteCrow в смысле что не опущусь уже ниже 60-70 за 3-4 часа

wlesavo: WhiteCrow так в реплее тебя не съели

WhiteCrow: https://www.codingame.com/replay/462717526

WhiteCrow: Собираю я в целом неплохо

WhiteCrow: Ну типа spaceorc сильно выше

WhiteCrow: А собираю я лучше (не по одному реплею)

WhiteCrow: Вот с Hamibar примерно на уровне, но он даже на меня не нападал

WhiteCrow: А я сам сдох

Hamibar: для меня ты просто стена)

Hamibar: нужно прикрутить атаку

WhiteCrow: https://www.codingame.com/replay/462720248

WhiteCrow: Я даже как стены противника не учитываю

WhiteCrow: Есть ОЧЕНЬ базовая эвристика драпать/превращаться, и всё

WhiteCrow: Что самое характерно, ближайшее улучшение направлено, опять же, на лучший сбор ресурсов :)

WhiteCrow: Только потом планирую начать учитывать противника

Uljahn: а коллизии между своими как разруливаешь?

WhiteCrow: Симуляция

Uljahn: ))))

WhiteCrow: Урезанная

Hamibar: Мне помогло делать соперника стенами. Думаю это из-за того, все то близко соперник и так соберет.

WhiteCrow: Ну как, симуляция перемещений полная, но только своих

Hamibar: что я написал :grimacing:

vrabosh: WhiteCrow, на тебя как раз попал, у тебя походу хорошо пути прокладывет.. а по боевке реально проигрываешь

Hamibar: Думаю это из-за того, что все что близко соперник успеет собрать.

WhiteCrow: Hamibar так и понял :)

WhiteCrow: Ну я и сам понимаю, но мне просто пока не хочется об этом думать

WhiteCrow: В смысле о противнике

735487: наконец то заслужил еще одну битву с бронзовым боссом )))

735487: может пройду. половина игр еще

735487: стал учитывать есть ли у врага скорость

735487: о я топ 1 бронзы ))

735487: таки серебро должен взять :))

tutubalin: поздравляю!

735487: прошел :))

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

wlesavo: го сразу в золото)

tutubalin: я противника пока просто стеной считаю и не атакую. мне бус дало просто использование скорости по кд

735487: да вот в голду походу надо в корне все переделывать

wlesavo: ух, наконецто закончил перевод этот

wlesavo: вроде всего страниц 20, а больше недели потратил

Default avatar.png embraco: а как вывести сообщение над пакменом?

SqueeCoder: MOVE 0 1 1 Сообщение

SqueeCoder: всё что после команды

Default avatar.png embraco: спс большое

SqueeCoder: перед |

wlesavo: ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

wlesavo: ой

Uljahn: эйлер в общаке про трекинг рассказывает

Jokero: че где голда то уже?

Uljahn: так рано ещё

Uljahn: через пару часиков

AntonT: мне казалось, серебро днём открыли

Hamibar: ощущения, что изменения свичей не дают результата. Наверное лучше сосредоточится над улучшением сбора

Hamibar: вроде как примерно через час должны открыть

Jokero: хочу уже увидеть, как зафейлюсь и стану каким нить 10м в серебре, а все пойдут в голду небесный эль попивать

wlesavo: Jokero да это норм еще, там потом босса быстро вниз запушат и пройдешь

SqueeCoder: А шарики видно на неограниченную дистанцию? Ну не считая препятствий.

Xanrum: на бесконечную, что можно даже упасть по таймауту

SqueeCoder: Ахах, забавно.

Xanrum: в одну дырку влетает из другой видно

Xanrum: Пацаны, гоу в голду - я создал : D

WhiteCrow: О, я в голде что ли?

WhiteCrow: Хи

WhiteCrow: Хм

WhiteCrow: Мне сказали, что прошёл :/

WhiteCrow: 212 человек прошло

Default avatar.png Akarachudra: Значит в легенду отправят сотню?

Xanrum: эх, опять кодить

WhiteCrow: Сотню, мне кажется, многовато будет

Default avatar.png Akarachudra: Ну в голде к пятнице сотни 3 будет

Default avatar.png Akarachudra: Кажется, чуть меньше трети от предыдущей?

BorisZ: в легенду человек 15 - 20 отправят, обычно по 10 -12, но тут народу много

NightLuna: не угадала =(

BorisZ: так что сжалятся может быть

wlesavo: сабмиты уже почти закончились, забавно

BorisZ: в предыдущем wlesavo был золотым боссом, а он стоял 10 на момент открытия легенды

wlesavo: в золото в прошлый раз взяли 80

Default avatar.png Akarachudra: Ну тут вроде рекорд по количеству участников

Default avatar.png Akarachudra: Но ничто не мешает в легенду отправить фиксированных 10. Чтобы замес был жестче

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

BorisZ: да легенда перед выходными как раз да и проще фигачить когда цель ясная стоит

wlesavo: тут в какойто момент сотню показало, потом сразу 200 уже

wlesavo: 70 игр всего зато, уже отыграли почти все

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

Xanrum: у меня нет симуляции противника и в золоте

Default avatar.png Akarachudra: для золота хватит качественного поиска в ширину

Hamibar: что значит качественный поиск в ширину?)

Xanrum: а в высоту можно? (не понял что есть в ширину)

Default avatar.png Akarachudra: Hamibar поиск оптимальных путей и выбор наилучшего. Отсутствие коллизий между своими.

Hamibar: а симуляция действий противника наверное может даже ухудшить.

Hamibar: Вдруг он весь такой непредсказуемый

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

Xanrum: хотя нет, вру - у меня есть симуляция - первые 5 ходов я считаю что враг ходит так же - и там где прошел сам - помечаю что там конфет нет

Xanrum: симетрично

Hamibar: ну это же не симуляция действий. А так сказать предположение. Хотя я мб не правильно понял слово симуляция

Xanrum: а как еще можно просимулировать? я же не знаю их алгоритмы - но обычно первые ходы точь в точь одинаковые

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

wlesavo: и в зависимости от вероятности его нахождения уменьшаю стоимость еды

Hamibar: такое тоже хочу запилить

Hamibar: Боюсь только, слишком много вариантов положения будет.

Hamibar: Нужно как-то функцию оценки очень классно настроить

wlesavo: да, на сабмиты грустно смотреть

wlesavo: надо чето делать

Jokero: вариантов положений будет не много, ты же с противником постоянно сталкиваешься, как только его видишь, все лишние варианты удаляешь

Xanrum: а там на первых местах точно в одного кодят, а не командой?

wlesavo: конечно

Hamibar: да сейчас наверное рейтинг не слишком хорошо отображает что происходит.

wlesavo: почитай pm пб4 по ooc, там прямо уровень дедикейшона виден

wlesavo: так упороться надо уметь

Hamibar: Jokero наверное. Еще бы научиться схлопывать пути, если ты его увидел.

wlesavo: https://github.com/pb4git/Ocean-of-code/blob/master/README.md

Hoggins: ахаха, ничего не делал целый день и оказался на 25ом месте. Похоже это единственный миг славы для меня :)

wlesavo: в серебре?

Hoggins: да

Hoggins: и сейчас почитав чат я понял куда делись 200 первых ребят... :(

Xanrum: 227 если точнее

Xanrum: присоединяйся к вечеринке

Hoggins: еще печальнее (:

Hoggins: щас, осталось только всё переписать

tutubalin: я тоже сперва обрадовался своему 150 месту вместо 300-го )

MadKnight: так я pelletValue=10 всегда вижу?

wlesavo: да

Xanrum: после пересчета 35 место, верните 8! хоть какая то радость в жизни >.<

tutubalin: то есть если супертаблетку съели, и это сделал не ты сам, значит там вражина?

wlesavo: типа того, да

wlesavo: но ты не знаешь который из, если у тебя не супер трекер

Hamibar: да вроде все бегут по кратчайшему пути к ней. Так что почти точно можно сказать.

Hoggins: а можно предсказать какой ид будет у вражеских паков, симметричных твоим?

Hamibar: практика показывает что такой же

Hoggins: удобно, спасибо :)

MadKnight: как с включённым speed пойти вверх потом вниз?

MadKnight: за 1 ход

Hamibar: никак

wlesavo: к сожалению да

Hamibar: он даже коридор, который на скорости проскакивает не видит:slight_frown:

Uljahn: не успевает по сторонам смотреть)

wlesavo: быстро несется же, да

dbf: да, неудобно ,что за шаг данные не поступают. из-за этого не могу определить, это я съел десятку или нет

Uljahn: а по очкам определить?

dbf: може исчезнуть 2 десятки, а получил 10 очков, непонятно какую кто съел

dbf: ну то есть можно вычислить, но надо все это делать

Uljahn: а какая разница?

Uljahn: ты же рядом в это время, должен видеть всё, не?

dbf: да, возможно

wlesavo: решил таки добавить вороного в оценку, ща глянем че получится

tutubalin: серебряного босса побеждаю, а дойти до него не могу

Uljahn: наконец-то modern warfare 2 remastered и starcraft 2 перепрошёл, пора контестом заняться :relieved:

gybson_samara: эххх, а я только в серебро залезаю

gybson_samara: и то пока вяло

tutubalin: даже с лапками можно пройти старкрафт 2 )

Uljahn: на казуале))

Uljahn: tutubalin: дейкстру сам пилил или из scipy брал?

Uljahn: попробую-ка побаловатся со scipy как inoryy завещал

BorisZ: Uljahn это прокрастинация в чистом виде, беги от scipy

Uljahn: я уже юзал в GitC, только освежить надо

BorisZ: не имеет ну никакого отношения к контесту

Uljahn: да пофиг на контест, наука важнее :)

BorisZ: эх, еще одного бойца потеряли

Default avatar.png Mirartes: что нового на серебре появляется?

wlesavo: бот крашится

Default avatar.png Mirartes: ахахха

Default avatar.png Mirartes: неплохо

Uljahn: у кого-нибудь есть сид с картой с width==29 (минимально возможная ширина)? а то только 31 попадаются

gybson_samara: есть 30

BorisZ: 30 вроде не бывает, нечетная ширина всегда

gybson_samara: ну да, с 0 же

BorisZ: может это только в дереве было 29. для бронзы от 31, такое бывало что разные размеры для разных лиг

Uljahn: скорее всего

wlesavo: https://www.codingame.com/ide/23443176b71be3ac3607dc99dfe95cf5d1320774

wlesavo: концовочка хорошая

Uljahn: не тот линк

wlesavo: ой

wlesavo: https://www.codingame.com/share-replay/463041169

wlesavo: чето уже не сооброжаю совсем

Uljahn: хм, scipy флойд-воршэлом все кратчайшие расстояния между всеми точками ищет примерно за 20мс на самой большой карте :thinking:

Uljahn: и ещё пути строит

tutubalin: а кратчайшие не особо то и нужны

tutubalin: только как мера расстояния между точками

Uljahn: а какие нужны? к ближайшим потенциальным кластерам?

Uljahn: я на графе ищу расстояния и пути, так вроде меньше хлама получается

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

Hoggins: а сейчас сколько? :)

wlesavo: ну я конкретно про функцию генерации, она и сейчас такая же, просто там отдельно теперь для каждого направления

wlesavo: а всего 500

wlesavo: прикрутил вороного еще, не знаю помогает или нет, вроде хуже не делает

Uljahn: wlesavo: что за рандомные пути? на какую глубину? это как в ООС?

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

wlesavo: у смитси еще круче, он генерит пути одновременно всеми паками

wlesavo: я по одному по очереди просто

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

Uljahn: одновременно - это с учётом того, что пак рядом может подвинуться и уступить дорогу?

wlesavo: да

wlesavo: все пути параллельно считаеи

Default avatar.png Akarachudra: нужно не одновременно, а в два прохода, как двухпроходный компилятор

wlesavo: и каждый ход они на одинаковой глдубине считай

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

Default avatar.png Akarachudra: когда они на одной глубине, точно не определишь хороший путь

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

wlesavo: но у него под миллион путей генерится

wlesavo: у меня штук 50-100 на пака всего

Default avatar.png Akarachudra: там всего-то несколько тысяч путей для всех паков

Default avatar.png Akarachudra: зачем миллион...

wlesavo: я тоже подумал что оверкил

wlesavo: может я ошибаюсь конечно тоже

Default avatar.png Akarachudra: не оверкил, а мусор)

wlesavo: как в памяти отложилось

Default avatar.png Akarachudra: пути-мусор, не бот, конечно

Uljahn: а что за пути-то? глубина какая?

wlesavo: у него 8

Uljahn: ок, понятно

wlesavo: то есть просто все паки движутся с учетом друг друга и максимизируют сбор

gybson_samara: у меня пути на 7 клеток пока просчитываются

Uljahn: и ты ещё в бронзе?

gybson_samara: у меня баги чудесные прям

gybson_samara: щас исправлю и выйду

gybson_samara: босса то я безусловно побеждаю

vrabosh: как вы просчеты путей делаете?

gybson_samara: я перебором

gybson_samara: прям алгоритм заливки буквально

Default avatar.png Mirartes: расскажите мне в чем смысл просчитывать путь если пак не видит точек

gybson_samara: потом все пути просчитываю на выгодность

vrabosh: типа пойду на лево, и по всем вариантам влево вправо итд.. и где больше собрал туда и идти?

Jokero: Only Clyde still has pacs standing! это значит, что у меня в бесконечный цикл ушел алгоритм какой-то?

gybson_samara: почему пак не видит точек? они с самого начала известны и только после какого-то хода они полуизестны

Default avatar.png Mirartes: ну я сделал чуть подругому

Default avatar.png Mirartes: я изначально не знаю где точки

gybson_samara: ну и зря

Default avatar.png Mirartes: и каждый тик я записываю все точки которые увидел

gybson_samara: я изначально знаю где точки, где я прошел я их стираю, где противник прошел тоже

gybson_samara: в остальных клетках половина точки

Default avatar.png Mirartes: после чего удаляю из памяти позиции где раньше видел точки

Default avatar.png Mirartes: противник тебе известно где прошел только в том случае если ты его видел

ilgiocatore: ну если так делать, то понятное дело никакой путь не построишь

Default avatar.png Mirartes: так я и не строю пути)

gybson_samara: мне остался один баг, чтобы не толкались

gybson_samara: отловил когда они толкались из-за скорости, вот еще один

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

gybson_samara: и чтобы не съели

gybson_samara: одного съели - пропал скорее всего

vrabosh: а как сделать, чтоб они вместе все проходили максимально?

vrabosh: мне кажется такого будет и для золота достаточно

ilgiocatore: ну я до сих пор эту задачу так и не решил нормально)

ilgiocatore: я пытаюсь симу делать, а не строить пути

gybson_samara: я тоже симу строил

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

gybson_samara: но лучше сначала все путий найти, а на них уже симу

gybson_samara: иначе тяжелая она

Default avatar.png Mirartes: решил проблему с сталкиванием но проходят по всем точкам недостаточно быстро(

ilgiocatore: ну я на первом ходу считаю расстояние от каждой точки к каждой точке

ilgiocatore: для оценки

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

Uljahn: твоих всех съели?

Uljahn: ппц, чат скрольнуло

gybson_samara: ход не успел сделать

vrabosh: на 13месте, может подождать до завтра и в золото уйду?

gybson_samara: с текущим багом 217 бронзы, если исправлю, будет идеальный обход точек

vrabosh: я 3 дня пытался алгоритм придумать. идеальных ходов.. то они туда сюда бегали иногда, то сталкивались.. потом плюнул и хожу до ближайших точек.

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

Default avatar.png Mirartes: хожу до ближайших но выше 140 не брал(

vrabosh: а потом уже подключать боевку, убегание итд

Uljahn: помнится, в поворятах тоже была проблема с коллизиями, только там напарником нельзя было рулить

gybson_samara: Uljahn эт оу меня все возможные пути в 8 клеток еще и без нампи

Uljahn: норм

gybson_samara: но жрут нещадно конечно

wlesavo: блин пытаюсь старт разлрулить, нашел вот такой сид seed=7553594912965702700


wlesavo: сложно прям, мозг кипит

wlesavo: это конечно реально редкий случай, но всетаки

gybson_samara: я вот сейчас смотрел, оба пака на скорости, потому даже если превращение просеку, то уже кд

gybson_samara: просто обидно

gybson_samara: они за 10 клеток друг от друга спид врубили

gybson_samara: вот и секиъ

vrabosh: wlesavo, вы на каждый старт пишите свою логику?

vrabosh: как seed смотреть?

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

wlesavo: settings слева, mode expert

wlesavo: тогда появится вкладка options

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

vrabosh: сколько тут примерно карт?

Uljahn: ))

wlesavo: бгг

dbf: да, неприятный сид, у меня на нем глючит

wlesavo: Uljahn посчитай сколько карт возможно, задачка на комбинаторику

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

gybson_samara: 81 ... де жа вю какое-то =)

vrabosh: они генерятся или заранее написаны?

Uljahn: в рефери есть генератор

wlesavo: генерятся

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

wlesavo: но очень сложно

vrabosh: я как понял, вы делаете ситуационые логику на начала хода когда 10 поинты стоят?

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

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

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

wlesavo: оценить можно

Uljahn: по вторичным параметрам эвристическим

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

ilgiocatore: блин, я только сейчас понял, что в начале известно, где противники

Uljahn: классика

Default avatar.png Mirartes: +

wlesavo: ilgiocatore а еще известны их id и типы, я тоже понял только когда в чатике обсуждать начали

ilgiocatore: ну это я уже сообразил тоже, глядя на карту)

Uljahn: о, можно же на первом ходе для каждой клетки области видимости предрассчитать :slowpoke:

ilgiocatore: да, точняк

wlesavo: да это мало времени ест

gybson_samara: в таймаут упадете

Uljahn: так там времени вагон, всё равно девать некуда пока

wlesavo: че это, я для каждой клетки рассчитываю карту расстояний своим мега медленным алгоритмом и норм

gybson_samara: я пробовал

gybson_samara: ну если хитрыми операциями, то может быть

wlesavo: а области видимости явно менее затратно чем расстояния

gybson_samara: на каждую клетку 4 ифа

ilgiocatore: меняй язык короче))

wlesavo: так у меня даже на питоне норм

ilgiocatore: ну либо учи язык

Uljahn: +

wlesavo: либо ищи бесконечный цикл

gybson_samara: ради чего?

Uljahn: контесты очень сильно прокачивают навык питона, т.к. таймауты на каждом углу)

Hamibar: я не пойму в чем сложность этого сида?

gybson_samara: из каждой точки все пути длиной 10 клеток и так делаются

wlesavo: ну если честно ради области видимости я бы тоже не стал запариваться

gybson_samara: а в пределах 10 клеток пути информация и так уже устаревшая

ilgiocatore: ну для симы это существенно может сократить время

gybson_samara: ну это да

gybson_samara: и у меня все на списках, а это совсем совсем совсем не массив

Uljahn: ну ты даёшь

wlesavo: а, со списками это да, верю что может таймиться

gybson_samara: я отважный

gybson_samara: Uljahn кинь еще раз ссылку про нампи

wlesavo: уж лучше тогда словарь {(x,y):val}

gybson_samara: словарь у меня чтобы объекты не пересоздавать

wlesavo: ye ye bkb ckjdfhm c yjlfvb

wlesavo: ну или словарь с нодами

Uljahn: https://www.labri.fr/perso/nrougier/from-python-to-numpy/

gybson_samara: спасибо, вписал в код первым комментарием =)

Uljahn: ну, это уже для продвинутых книжка

wlesavo: да все равно полезно, образ мышления определенный показывает

gybson_samara: продвинемся, куда деваться-то

Uljahn: я начинал по докам и вопросам на SO

wlesavo: а основы за пол часа поднимаются

wlesavo: ну на том уровне чтобы примерно понимать о чем в книге

gybson_samara: ну все-таки у меня опыт, образование, может помогут

Uljahn: низкоуровневые знания будут полезны

Uljahn: и абстрактное мышление в N-мерных пространствах)

gybson_samara: высшая математика в полном объеме

gybson_samara: включая аналитическую геометрию

gybson_samara: как сейчас помню интегралы в полярной системе координат

Uljahn: даже не пространства, а размерности, типа матрицы Z x H x W

Uljahn: или простые 2D матрицы, или векторы одномерные

Uljahn: правила согласования размерностей (broadcasting) выучить, хитрую (fancy indexing) и обычную индексацию - и готово

Uljahn: уже считай датасайентист

Uljahn: автодополнение в браузере убивает, то No suggestion пишет, а когда уже сам почти дописал - вылезает наконец

Meagnar: стоит ли вообще лезть в оптимизации питона, если учить его после плюсов? или проще научиться собирать модули на плюсах под питон?

Uljahn: зачем тебе питон, если знаешь плюсы?

gybson_samara: чтобы меньше писать

Meagnar: так, для разнообразия :)

MadKnight: и правда

Uljahn: научиться собирать модули - полезно, конечно

gybson_samara: плюсы пипец напрягают абстракцией, кстати

Meagnar: ну вообще да, чтобы мелкие скрипты писать

vrabosh: я не представляю как вы на плюсах прогаете, мнебы терпения не хватило..

Uljahn: а так в питоне полно батареек на все случаи жизни

Meagnar: а то напрягает писать полноценную прогу ради пары строк кода

Uljahn: ради пары строк не стоит заморачиваться оптимизацией, наверное

Meagnar: тоже верно

Uljahn: vrabosh: про Cython слыхал? это как Си, только питон)

vrabosh: компилятор?

Uljahn: типа того

gybson_samara: MadKnight когда у тебя template и inline, то все красиво. НО потом начинаются c = a+b*

Uljahn: ехал референс через поинтер)

gybson_samara: там 400 строк кода, но по ним так набегаешься

Uljahn: gybson_samara: https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_solutions.md

Uljahn: вот ещё ссылка крутая по нумпи

Uljahn: 100 трюков

wlesavo: о, спс

Uljahn: типа поваренная книга

wlesavo: вот чем займусь после контеста

Uljahn: :thumbsup:

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

Jokero: ну сейчас исправишь, он сразу обвалится по местам))

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

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

zuko3d: интересно, найдётся ли кто-то, кто прикрутит сюда нейросетки

zuko3d: ну, с успехом, а не просто прикрутит =)

WhiteCrow: Опа, игра теперь длится 300 тиков

zuko3d: The game stops automatically after 200 turns.

zuko3d: Откуда инфа про 300 тиков:

SqueeCoder: 200 turns(ходов), возможно 2 тика за ход, если кто-то на ускорении

zuko3d: тогда выходит почти 400 тиков, а не 300 же

SqueeCoder: ну если не стоит ограничение на количество тиков, то 400, у меня до такого количества не доходит, так что не проверял

WhiteCrow: Инфа из реплеев

WhiteCrow: Голды

SqueeCoder: https://www.codingame.com/replay/463300528 56+ ход это баг? Слева внизу 3 пака долбятся и не жрут друг друга.

WhiteCrow: Да нет, всё правильно

WhiteCrow: Хотяяя

WhiteCrow: Да, всё правильно

WhiteCrow: Оба правых пака независимо столкнулись с левым

WhiteCrow: Я вдруг осознал

SqueeCoder: Так они оба камень

WhiteCrow: Что у меня в симуляции баг есть

WhiteCrow: И что?

WhiteCrow: А, там есть ещё тонкость, что более слабый не может наступить на более сильного, но она явно не всегда работает

WhiteCrow: Ок, я не понимаю, что там происходит :)

SqueeCoder: Ну, может это тонкости механики. Но по моему разумению, если уж происходит коллизия, то должен быть просчёт на поглощение. Если только сталкиваются два красных, позиции показываются занятыми, а синий тупо не может на эти занятые позиции попасть.

SqueeCoder: Ну или босс читерит, и думает, что никто не заметит:joy:

zuko3d: ну смотри - вот мы считаем поглощение. Какой из красных камней должен встать на клетку ножниц?

WhiteCrow: Никакой

WhiteCrow: Ножницы должны уйти влево и сдохнуть

zuko3d: хм... а если слева были бы ножницы?

SqueeCoder: Был бы тот же результат ИМХО

zuko3d: т.е. выглядит так, что всё работает правильно, так?

SqueeCoder: нет, баг в том что у синего не проверяется столкновение. По факту он видит, что ходить туда нельзя, как-будто там стена.

zuko3d: ээмм... не понял. Что значит - не проверяетя? он же отдаёт кмонда идти туда

zuko3d: *команду

SqueeCoder: Да, и он видит, что там что-то есть, но не видит конкретно что. Ведь красный должен был оттуда уйти, но он там находится из-за столкновения с союзником.

zuko3d: брр.... как это не видит конекретно? Ввод же поступает вполне конкретный

zuko3d: он не может знать заранее, должен ли был красный уйти или нет.

SqueeCoder: Да но на стороне сервера, из-за внутренней механики происходит казус. Я, например, помечаю клетки, на которые собираюсь походить, чтобы союзники не ходили на одну и ту же клетку. Возможно на сервер тоже похожая механика. И статус клетки "занят". И синий пытается попасть в эту точку, в то время Когда красный "ушёл" и сталкивается с противником. Но это не точно :)

zuko3d: хм.... а зачем гадать если есть исходники?

zuko3d: насколько я помню - там всё просто: сначала разрешение коллизий, потом кушания.

BorisZ: ход ножниц отменяется - они не могут пересекать путь камня

BorisZ: камень сильнее

BorisZ: то есть левый камень двигается на ножницы, ножницы не двигаются, но нижний то камень тоже двигается на ножницы

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

BorisZ: рефери отодвигает оба камня назад, так как поглощение после коллизий

BorisZ: Resolve movement, including collisions Kill pacs that were beaten during a collision

SqueeCoder: Только в меня частенько упарывался более слабый противник, и не блокировался...

zuko3d: может потому что не было коллизий?

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