Chat:Ru/2020-05-13
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: а вот еще интересный вопрос, я отмечаю позиции в которых был, а вот где были враги я отмечать не могу так как не всегда их вижу из-за этого получается что мои паки иногда едят "призрачные точки" там где сами не были а противник уже все сожрал
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: пока ты перестаёшь, враг качается
Mirartes: сколько в сильвере людей?
wlesavo: 812
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: в бронзе сабмиты еще рандомнее
Borrow: почему вы думаете что топовые боты не будут пытаться есть жертв с нулевым кулдауном
Borrow: рассуждая как жертва, вы типа думаете что свитч не нужен потому что топ боты осторожные
wlesavo: Borrow потому что это верная смерть
735487: wlesavo: не всегда. я ее юзаю получается только когда вижу врага ))
735487: что лучше уверен
Borrow: но если жертвы думают что свитч не нужен, их надо есть
735487: без скорости стабильно захотит в топ 70 а с ней до 250 с трудом
Hamibar: Borrow а как съесть если враг всегда отойти может
735487: а вообще мне просто некогда из за работы пилить норм бота и я пытаюсь эвристиками уже хотя бы в серебро пройти )))
Borrow: Если у хищника скорость, а у жертвы нет.
Hamibar: кроме тупиков конечно
wlesavo: короче будет от меты зависеть, сейчас топ боты очень миролюбивые, может агрессивные стратегии будут хорошо играть
zuko3d: у тебя либо скорость, либо правильный тип
Hamibar: значит тебе должно повезти, что у тебя скорость, у врага подходящий тип, 0 кулдаун и он стоит рядом.
735487: что говорите вообще switch убрать?
wlesavo: кушать нулевые кулдауны точно подавишься, и это не может быть оптимальной стратегией ни в какой мете конечно
wlesavo: amurushkin не, в бронзе точно нет
Hamibar: точнее не 0 кулдаун
Borrow: По-моему, нужно изредка наступать на жертв, даже с риском для себя. Чтобы они не расслаблялись и тратили абилку на свитч почаще. Решение в смешанных стратегиях, в общем.
Uljahn: как наступать? подходить вплотную, но не пытаться съесть?
Hamibar: если свитчнешься когда у врага 0 кулдаун, то сам станешь жертвой, а не охотником.
Borrow: свитчуется пусть жертва
Borrow: свитч в нападении конечно не работает
Hamibar: не если ты точно можешь убить, то конечно стоит атаковать
Borrow: Но я также утверждаю, что если ты точно можешь догнать, но у жертвы КД 0, тоже надо иногда атаковать для острастки.
Uljahn: преследовать врага по пустому коридору такое себе
Hamibar: не знаю. В топах не будет это работать думаю
Borrow: Преследовать вероятно не выгодно. Но если ситуация сама собой сложилась, то надо пользоваться.
Hamibar: Если ты знаешь что тебе не убежать почему не свичутся?
Uljahn: сама собой) как наивно
Uljahn: в топах такого не будет
Borrow: На случай что тебя не будут есть, побоявшись что ты свитчнешься.
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, а больше недели потратил
embraco: а как вывести сообщение над пакменом?
SqueeCoder: MOVE 0 1 1 Сообщение
SqueeCoder: всё что после команды
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 человек прошло
Akarachudra: Значит в легенду отправят сотню?
Xanrum: эх, опять кодить
WhiteCrow: Сотню, мне кажется, многовато будет
Akarachudra: Ну в голде к пятнице сотни 3 будет
Akarachudra: Кажется, чуть меньше трети от предыдущей?
BorisZ: в легенду человек 15 - 20 отправят, обычно по 10 -12, но тут народу много
NightLuna: не угадала =(
BorisZ: так что сжалятся может быть
wlesavo: сабмиты уже почти закончились, забавно
BorisZ: в предыдущем wlesavo был золотым боссом, а он стоял 10 на момент открытия легенды
wlesavo: в золото в прошлый раз взяли 80
Akarachudra: Ну тут вроде рекорд по количеству участников
Akarachudra: Но ничто не мешает в легенду отправить фиксированных 10. Чтобы замес был жестче
wlesavo: вообще видимо серебро тоже также постепенно открывали, я увидел 200 на открытии, еще думал остальные чето быстро запромоутились, видимо реально было больше людей
BorisZ: да легенда перед выходными как раз да и проще фигачить когда цель ясная стоит
wlesavo: тут в какойто момент сотню показало, потом сразу 200 уже
wlesavo: 70 игр всего зато, уже отыграли почти все
Jokero: как ни хочется, а походу даже для золота придется пилить симуляцию действий противника
Xanrum: у меня нет симуляции противника и в золоте
Akarachudra: для золота хватит качественного поиска в ширину
Hamibar: что значит качественный поиск в ширину?)
Xanrum: а в высоту можно? (не понял что есть в ширину)
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: эх, еще одного бойца потеряли
Mirartes: что нового на серебре появляется?
wlesavo: бот крашится
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: все пути параллельно считаеи
Akarachudra: нужно не одновременно, а в два прохода, как двухпроходный компилятор
wlesavo: и каждый ход они на одинаковой глдубине считай
Uljahn: непроходимыми не так уж хорошо, если они у коридора, за которым много разветвлений
Akarachudra: когда они на одной глубине, точно не определишь хороший путь
wlesavo: ну там понятно что детали есть и сложности свои
wlesavo: но у него под миллион путей генерится
wlesavo: у меня штук 50-100 на пака всего
Akarachudra: там всего-то несколько тысяч путей для всех паков
wlesavo: я тоже подумал что оверкил
wlesavo: может я ошибаюсь конечно тоже
Akarachudra: не оверкил, а мусор)
wlesavo: как в памяти отложилось
Akarachudra: пути-мусор, не бот, конечно
Uljahn: а что за пути-то? глубина какая?
wlesavo: у него 8
Uljahn: ок, понятно
wlesavo: то есть просто все паки движутся с учетом друг друга и максимизируют сбор
gybson_samara: у меня пути на 7 клеток пока просчитываются
Uljahn: и ты ещё в бронзе?
gybson_samara: у меня баги чудесные прям
gybson_samara: щас исправлю и выйду
gybson_samara: босса то я безусловно побеждаю
vrabosh: как вы просчеты путей делаете?
gybson_samara: я перебором
gybson_samara: прям алгоритм заливки буквально
Mirartes: расскажите мне в чем смысл просчитывать путь если пак не видит точек
gybson_samara: потом все пути просчитываю на выгодность
vrabosh: типа пойду на лево, и по всем вариантам влево вправо итд.. и где больше собрал туда и идти?
Jokero: Only Clyde still has pacs standing! это значит, что у меня в бесконечный цикл ушел алгоритм какой-то?
gybson_samara: почему пак не видит точек? они с самого начала известны и только после какого-то хода они полуизестны
Mirartes: ну я сделал чуть подругому
Mirartes: я изначально не знаю где точки
gybson_samara: ну и зря
Mirartes: и каждый тик я записываю все точки которые увидел
gybson_samara: я изначально знаю где точки, где я прошел я их стираю, где противник прошел тоже
gybson_samara: в остальных клетках половина точки
Mirartes: после чего удаляю из памяти позиции где раньше видел точки
Mirartes: противник тебе известно где прошел только в том случае если ты его видел
ilgiocatore: ну если так делать, то понятное дело никакой путь не построишь
Mirartes: так я и не строю пути)
gybson_samara: мне остался один баг, чтобы не толкались
gybson_samara: отловил когда они толкались из-за скорости, вот еще один
ilgiocatore: чтобы выйти в серебро по сути достаточно тупо сделать алгоритм, который обходит максимально быстро всю карту вне зависимости от ништяков на ней
gybson_samara: и чтобы не съели
gybson_samara: одного съели - пропал скорее всего
vrabosh: а как сделать, чтоб они вместе все проходили максимально?
vrabosh: мне кажется такого будет и для золота достаточно
ilgiocatore: ну я до сих пор эту задачу так и не решил нормально)
ilgiocatore: я пытаюсь симу делать, а не строить пути
gybson_samara: я тоже симу строил
ilgiocatore: хотя вот симуляцию как раз проблематично пилить, когда ты нихера не знаешь наверняка
gybson_samara: но лучше сначала все путий найти, а на них уже симу
gybson_samara: иначе тяжелая она
Mirartes: решил проблему с сталкиванием но проходят по всем точкам недостаточно быстро(
ilgiocatore: ну я на первом ходу считаю расстояние от каждой точки к каждой точке
ilgiocatore: для оценки
gybson_samara: я пробовал на первом ходу граф сделать, питон не вытащил по скорости
Uljahn: твоих всех съели?
Uljahn: ппц, чат скрольнуло
gybson_samara: ход не успел сделать
vrabosh: на 13месте, может подождать до завтра и в золото уйду?
gybson_samara: с текущим багом 217 бронзы, если исправлю, будет идеальный обход точек
vrabosh: я 3 дня пытался алгоритм придумать. идеальных ходов.. то они туда сюда бегали иногда, то сталкивались.. потом плюнул и хожу до ближайших точек.
gybson_samara: алгоритм простой, его закодировать без багов и постоянного сейва карты сложно
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: классика
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: не знаю, я не замечал ни разу чтоб было что-то что не так разрешается как описано в порядке ходов