Chat:Ru/2020-05-14
 Hoggins: пока что все баги в этой игре которые я видел, я же и написал...
 Mirartes: обидно когда проигрываешь больше чем 10 людям на 2-3 очка в серебре((
 Hamibar: а кто-нибудь помнит сколько людей прошли в легу на прошлом контесте?
 735487: 10 или 15
 metahom: ровно 10
 Hamibar: даа. Тяжеловато будет туда залезть
 metahom: ты на 20 месте, куда ты денешься? )))
 Hamibar: так это сейчас.
 Hamibar: Через 2 дняя уже все по другому будет
 Akarachudra: Фундаментально боты лучше не стали за последние два дня. Простые способы улучшить бота закончились. Поэтому не факт, что ситуация сильно изменится через два дня.
 Hamibar: наверное ты прав. Вот уже сколько держусь на 20-40 без каких-то значительных улучшений
 vrabosh: не всеж так быстро сразу все запрогрммили, может подьедут новые боты, где базовые функци сделаны.
 735487: есть кто в SQL разбирается? что то загуглить не могу. есть 2 таблицы.  мне надо сделать запрос чтобы если поле не 0 то по нему джойнилась другая таблица а если поле 0 то джойнились пустые столбцы. так вообще можно сделать?
 wlesavo: высшая степень говнокода это когда копипастишь один кусок, который когдато скопипастил уже в другое место, и замечаешь что в прошлый раз в копипасте не исправил 
 Uljahn: поделитесь сидом со сквозным коридором плз
 dbf: -768104555130689020
 Uljahn: спс!
 MadKnight: вот это подстава
 S0L0: а куда вставляют этот сид ?
 MadKnight: а у меня вайл до стены
 MadKnight: S0L0 включи Expert
 Uljahn: xd
 MadKnight: всё, пофиксил
 Uljahn: setting -> mode: expert -> options -> manual
 BorisZ: amurushkin вместо джойна ставишь лефт джойн и вместо второй таблицы подзапрос селегт из второй где поле не равно 0
 wlesavo: я кажись в конец доломал эту конструкцию из говна и палок, надо было слушать боба 
 wlesavo: у меня матчи против любого ранга броском монетки какбудто решаются
 MadKnight: класека
 MadKnight: ну на самом деле тут много чего зависит от броска монетки если ты многого не учитываешь
 Hamibar: получается 50% винрейт)
 wlesavo: ага, только винрейт 50% против 300 ранга = сидишь на дне
 wlesavo: и не важно что против топ 5 у тебя тоже 50 %
 Hamibar: ну по идее игра и должна быть рандомной. Ведь это камень ножницы бумага)
 Uljahn: wlesavo: у тебя бот крашится, похоже
 Uljahn: или таймаутит
 Uljahn: против Atra даже слил, хотя он стоит на месте
 wlesavo: нет, не таймит, в том то и дело
 Uljahn: https://www.codingame.com/replay/463413970
 wlesavo: старый реплей
 wlesavo: это я дебажил
 Uljahn: а
 Hamibar: вообще кстати странный контест. 10% кодишь 90% вылавливаешь баги. у меня вон всего 650 строк с кучей мусора.
 Hamibar: в прошлых было как-то по другому
 wlesavo: я близок к тому чтобы забить уже, либо вообще заново переписать
 wlesavo: но времени не очень уже
 Uljahn: да всё то же самое было
 Hamibar: ну просто по ощущениям. Мб так же было.
 735487: BorisZ:  спасибо за совет. в конечном итоге решил двумя запросами и union
 735487: wlesavo: это типа что если я рандом прикручу могу в голду пройти?
 wlesavo: тебе нужна функция if random()>0.5: win()
 MadKnight: для этого тебе нужна функция win() которая будет рвать вообще всех вообще всегда
 MadKnight: wlesavo переписывай
 S0L0: интересно в голде все используют симулятор и заглядывание в будущее , или без этого есть там люди
 MadKnight: в голде? может и без этого есть
 wlesavo: если там это в голде то большинство без
 MadKnight: а сколько в голде кстати?
 wlesavo: 313 уже
 MadKnight: да скорее всего многие без
 Hamibar: У меня вообще никакая симуляция не прикручена.
 Uljahn: соперников-то учитываешь? на стены заменяешь?
 Hamibar: ага. как стены
 Hamibar: даже если могу скушать
 S0L0: ммм, а как получаете 2 или больше клетки вперед на поворотах если не симуляцией. 
 Uljahn: свои коллизии тоже небось избегаешь
 Hamibar: и это тоже. Но я уже говорил как. Там ничего сложного
 Uljahn: вот 20% симуляции и набралось)
 wlesavo: а, ну если это называть симуляцией то почти у всех в голде
 Hamibar: S0L0 получаю путь и беру не 1ю клетку этого пути, а 2ю
 Hamibar: ну тут конечно что называть симуляцией
 S0L0: не это не симул, из пути 2 часто нет , цель достигнута, за углом враг
 Uljahn: а, ты про предсказание и трекинг врагов что ли?
 S0L0: про предсказание след цели (координаты)
 S0L0: ну и про врагов тож интересно , их же видно не часто
 Uljahn: строишь кратчайший путь к цели с учётом видимых врагов, если на скорости - идёшь ко второй клетке пути
 Hamibar: у меня оценочная функция устроена так, что она выбирает наиболее длинные пути. Так что если есть путь длины 2 с 2 палетками, то он лучше, чем путь 1 с 1 палеткой
 S0L0: но не учитывает случая , на скрости текущая цель 1 палетка она в угле , рядом других нет , она на соседней клетке
 S0L0: итого теряется 1 ход скорости
 Hamibar: теряется конечно. Но тут опять можно сделать такую оценку, что это плохой путь.
 Uljahn: похоже, скорость лучше тратить на длинные кордоры, чем в длинные тупики лазить, а то возвращаться по пустым клеткам и без скорости как-то грустно
 Hamibar: ну кстати да. Если у тебя лучший путь длины 1, то лучше по нему пройти и только потом заюзать скорость. Надо будет сделать
 S0L0: хорошие идеи , тоже надо прикрутить топы смотрю еще и тупики обрезают, в конце собирают
 Uljahn: вот-вот
 Hamibar: тупики обрезать насколько я помню было очень хорошим улучшением.
 Akarachudra: у меня написаны на это тесты и до сих пор нет реализации. пока нет статистических доказательств, что это - лучше.
 wlesavo: что значит тупики обрезать?
 Akarachudra: снизить веса и не посещать их
 Uljahn: предпочитать пути с открытым концом
 wlesavo: у меня это автоматом получалось, но что то я не уверен в эффективности
 Uljahn: к середине игры можно наоборот задрать им веса
 Hamibar: наверное у меня это сработало потому что при построении пути не учитываю скорость. И он мог на скорости заходить в короткие тупики и терять ходы.
 Hamibar: Или это вообще не сработало и мне повезло с сабмитом)
 tutubalin: удивительно, на чём я в Botters of the Galaxy дошёл до бронзы
 tutubalin: for i in range(5):
   print("WAIT")
 tutubalin: while 1:
   print("ATTACK_NEAREST HERO")
 Hamibar: смешное там золото 6 человек всего. Тут контест полным ходом а ты в мульти рубишься?
 tutubalin: это я давно уже засабмитил, а сегодня внезапно сообщила, что перешёл в Wood-1. а потом сразу в бронзу
 gybson_samara: терпение и труд все перетрут =)
 Akarachudra: BOTG был слабый бос выбран в золоте, от того и переходили сразу из серебра в легенду.
 wlesavo: скрепя сердце откатился на полтора дня назад, эх
 ashelkov: я вчера пол кода удалил там где decision making был
 ashelkov: ну зато то что щас мне нравится гораздо больше/ осталось фич допилить и можно подняться из дна золота
 wlesavo: пополам с горем и удачным сабмитом после отката в топ50 хоть залез
 wlesavo: ато совсем грустно чето было
 ashelkov: все равно поздравляю!
 wlesavo: обидно таки, столкьо фишек прикрутил, и все напрасно
 wlesavo: и дежае не понятно какие из них в теории могли бы заработать
 wlesavo: буду ща по одной перебирать
 Uljahn: тоже надоело каждый раз к концу контеста разгребать спагетти из костылей, такой код потом и не переиспользуешь толком, done is better than perfect тоже имеет крайность
 Uljahn: решил кодить в своё удовольствие, не торопясь
 ashelkov: у меня вчера еще так было/ щас вроде перфект но нихера не done
 wlesavo: может как в ooc буду ща делать уже, добавлять только то что точно не может хуже сделать, типа трекера
 wlesavo: ато на сомнительные идеи потратил много времени в итоге все сломал
 Hamibar: надо сначала done, понять, что это работает(или нет) а потом привести в perfect. И по кругу так
 wlesavo: ну вот тут вопрос, он неработает потому что идея не очень или потому что не перфект
 Hamibar: я про то, чтобы не было спагети из костылей). Сделал костыль увидел, что работает. Переделал из костыля в хороший код.
 vrabosh: а мне, чтото реализация с графами не дается.. надо было через береборы делать, тут бы как раз береборы лучше зашли чем в океане.. а в океане как раз графы..
 ilt: где-то тут был брутал тестер!? не подскажете ссылку? 
 wlesavo: https://github.com/s-vivien/CGBenchmark ты про это?
 wlesavo: или что то другое
 tomatoes: https://github.com/dreignier/cg-brutaltester
 Uljahn: ну всё, начинается)) rip CG, Automaton2000
 Automaton2000: Uljahn пингани automatonnn пингани Uljahn пингани automatonnn пингани Uljahn пингани automatonnn
 Uljahn: xd
 ilt: я про вторую, раньше пользовался этой штукой
 Hamibar: жалко, что эта штука только между своими стратегиями)
 Hamibar: Хотя если изменил алгоритм наверное полезно
 Hamibar: Uljahn так и не пинганул:neutral_face:
 ilt: с чужими наверное лучше, но со своими проще фичи пилить их и сравнивать и отлаживать у меня лучше получается
 ilt: когда есть несколько полных реплеев
 Hamibar: ага интересная штука. Надо будет с след  контесте заюзать
 Hamibar: реплеи то можно и в иде сделать а вот винрейт посмотреть на хорошем количестве боев звучит интересно
 vrabosh: научиться бы самообучающих делать. но это для начала надо научиться игру ставить у себя на пк.
 ilt: как получить корректное состояние на шаг 100?
 ilt: из ИДЕ
 ilt: я быстрого способа не знаю
 tomatoes: в stderr выводи
 ilt: так и делаю
 ilt: но у меня же есть некоторые объекты которые копят информацию
 ilt: мне все 100 прошлых нужно знать по хорошему
 ilt: мне этим брутал тестер и нравился
 tomatoes: есть такая проблема, выдумывать надо что-нибудь
 vrabosh: всмысле чтоб не обрезало?
 tomatoes: в подлодках тоже стейт копился
 vrabosh: выводи после 100 шага, кусками
 vrabosh: типа на 99 шаге весю инфу, а потом по куску который влазиит
 Hamibar: ну в файлик то удобнее выводить конечно. Если локально запускать.
 Uljahn: ilt: а ты против себя играешь?
 vrabosh: я придумал как кодгейму можно монетизироваться:)
 wlesavo: они так то и сами придумали
 Uljahn: они уже и сами умеют
 vrabosh: дать дисковое пространство и возможность туда сохранять игровые логи которые сам выводишь и игр в раз 10 больше в тесте делать со списком каким указывешь
 vrabosh: кстати как они монетизируют?
 Uljahn: https://www.codingame.com/work/
 vrabosh: кто нить находил через это работу?
 vrabosh: из рус говорящих
 Uljahn: я не слышал о таких
 Uljahn: у них всё же фокус на франции и канаде
 ilt: Uljahn Раньше да, чемпионат между несколькими версиями устраивал
 Uljahn: хотя и швейцария тут бывает
 tomatoes: кто-то интервью проходил через кг интерфейс. но я забыл кто именно
 Uljahn: ilt: тогда у тебя команды с каждого хода есть, придётся их последовательно применять, чтобы добраться до стейта на 100-м ходу. либо как-то хэшировать стейт и в дебаг выводить, из IDE никак иначе не получить, там же реплей показывается, можешь его распарсить сам, там принцип тот же - инициализация и изменения
 S0L0: дебаг обрезает , притом в первые ходы больше выводит , потом меньше, это можно как то изменить ?
 Uljahn: нет, только меньше выводить
 Uljahn: на других сайтах вообще без дебага как-то живут)
 wlesavo: да, гугловские контесты вообще три типа ошибки, рантайм, таймаут и неправильный ответ, и иди кури
 ilt: 
Uljahn у меня так и написано есть режим Дебаг, может весь вывод из локального файла читать от начала игры до конца
 ilt: вот из иде его брать проблематично
 ilt: а из БТ на раз два
 ilt: нужно только выбрать игры которые тебя интересуют
 Uljahn: есть такая штука вот
http://eulerschezahl.herokuapp.com/codingame/replays/reproduce/320527355 - свой номер реплея ставишь, он ходы все выводит
 Uljahn: но не знаю, насколько полезно может быть в этом случае
 ilt: спасибо посмотрю
 vrabosh: неужели я в золоте.. еле взял его. 
 Hamibar: теперь го в легенду
 vrabosh: попробую перебором пути искать.. может лучше будет.. а то  через пускания волн плохо идет.
 MelnikovIgor: Симуляции есть?
 MelnikovIgor: Ку, как на шарпе удалось так высоко подняться?
 Akarachudra: Мне кажется, даже 1% участников не упираются в ограничения производительности какого-то языка.
 wlesavo: я вот упираюсь в ограничение рук не из того места
 Hamibar: это ограничение посложнее исправить будет.
 Hamibar: Видел на 25е залетал. Похоже откат на пользу пошел?
 wlesavo: не, просто сабмит случайный, выйграл первых 10 калибровочных и закинуло
 wlesavo: дайте идей хороших, я чтото во всех своих задумках разочаровался
 tutubalin: я ж уже давал
 tutubalin: бей из-за угла
 Hamibar: мне кажется тут важнее всего сбор. Не уверен, что атаки дают большой прирост
 Hamibar: хотя надо все равно протестить
 tutubalin: ранние атаки могут помочь
 tutubalin: в ендшпиле уже особо не решают
 MelnikovIgor: Akarachudra, я в крестиках кажется уперся
 Hamibar: просто нет какого то надежного способа атаки. Кроме как из-за угла конечно)
 Hamibar: ну или карта хорошая
 Hamibar: или в тупик враг зашел
 wlesavo: изза угла тоже не надежно
 Hamibar: хм. Не так уж и мало вариантов:grinning:
 wlesavo: это надо чтобы за тобой шел
 wlesavo: а нормальный бот за тобой не пойдет
 Hamibar: почему не надежно? тут одно маленько но. Враг должен не знать что ты за углом, а ты должен знать. Ну или понимать, что ничего опасного.
 wlesavo: ну в том смысле что это можно сделать наверняка только если он за тобой бежит, а перехватить и выскочить изза угла у тебя информации не хватит
 Hamibar: не знаю есть ли у кого из топов нападения из-за угла.
 tutubalin: поэтому это верный способ забороть топов )
 Hamibar: в любом случае если это безопасно то почему бы не попытаться убить
 vrabosh: вот у меня как раз партия где на старте если сделать один лишний ход то можно подловить противника из за угла
 vrabosh: если такие варианты постывать то это вообще гуру-прогером можно считаться
 vrabosh: причем при нынешней ситуации с 90% случаях противник пойдет по одному и томуже пути в начале.
 ashelkov: ох и сложно в золоте подниматься по рейтингу oO
 MadKnight: зато в леге будет не так
 ashelkov: ахах/ лега то хорошо/ но для начала хоть бы в топ 100 залезть
 vrabosh: больше 15 ходов перебором не получается сделать.. еслиб сразу делал, может быть до 20 ходов получилось
 Hamibar: Что нужно, чтобы прибавилась моивация что-то делать? Нужно упасть на 30 позиций за пол часа!
 WhiteCrow: Ничто так не бодрит, как пуля, просвистевшая у уха
 MelnikovIgor: Кто подскажет почему проиграл игру? Таймаута и ошибок не было https://www.codingame.com/replay/463771703
 Uljahn: невалидная цель?
 Hamibar: Не тот таргет дал
 MelnikovIgor: Но в логах нет ошибки такой
 Uljahn: наведи на прогресс лайн, там плашечка твоего цвета с описанием события
 Hamibar: дал (1,14) а 13 по у
 Hamibar: карта 13 по у
 MelnikovIgor: о, спасибо
 gybson_samara: поставил вместо списков массив numpy и словил ТА ... где вот? ... с чего?
 wlesavo: уверен что именно таймаут, может просто баг?
 gybson_samara: может
 gybson_samara: везде выражения типа arr[y][x]
 gybson_samara: как смена списков на нампи могла тут повлиять?
 wlesavo: а нужно arr[x, y]
 wlesavo: если координата в тупле кстати типа c = (x, y) можно делать просто arr[c]
 gybson_samara: [y][x] тоже допустимо
 gybson_samara: почему x первый, если это номер элемента в строке?
 gybson_samara: ахххх
 gybson_samara: вижу
 gybson_samara: в нампи сначала номер строки
 Jokero: чет как то сима не пошла. 5-7 ходов чужого пака, уже больше 100 вариантов где он может быть получается
 gybson_samara: это очень удобно, но и переписывать много =)
 gybson_samara: практически все  ... =)
 Hamibar: не может быть больше 100 за 7 ходов
 Hamibar: а хотя скорость я не учел
 Jokero: 4*4*2*2*2 - как то так
 Jokero: первый ход 4-5 варинатов, от него 4 новых варианта от каждого варианта, от тех еще от каждого по 2 уникальных варианта
 gybson_samara: это если никто из твоих паков не выходит на одну линию видимости с ними
 Jokero: вот карта например, там вообще фиг с противником встретитесь
seed=344351057542284220
 Hamibar: но клеток на расстоянии 5-7 ограниченное число
 gybson_samara: зачем тебе вообще с ним встречаться?
 Jokero: что бы уменьшить количество вариантов
 gybson_samara: так выигрывает тот, кто больше собрал
 Hamibar: так в этом и прикол трекинга не идти в пустые участки
 Jokero: да я про симуляцию нахождения противника
 S0L0: все возможные пути во все клетки на расстояннии номера хода
 Jokero: я думал его можно будет более менее выслеживать, как в лодках
 gybson_samara: в лодках это и было смыслом игры
 gybson_samara: и тут-то нет
 Jokero: но через 3-5 ходов уже становится слишком много мест, куда он мог уйти, и ценность от такой симуляции стремится к 0
 gybson_samara:  меня вот с пожиранием точек и противника проблем нет почти, есть проблема критического тупежа иногда =)
 Jokero: gybson что тебе не хочется знать, где шарахался противник и какие клетки он уже подъел?)
 gybson_samara: не хочется
 Hamibar: думаю нужно по другому делать
 gybson_samara: какие он точно подъел я знаю, а какие не точно, те 0.5 цены
 Hamibar: не оценивать где он был
 Jokero: мне хочется. я бы дал более низкий приоритет клеткам, где противник мог уже побывать
 Hamibar: а смотреть какими путями он мог добраться из одной клетки, где ты его увидел в следующую.
 gybson_samara: к концу игры окажется, что можно было с самого начала всем неизвестным клеткам дать 0.5
 gybson_samara: если клетка на другом конце карты, то чего толку ей приоритет понижать?
 dbf: Hamibar, я чего-то такое пробовал делать, но как-то тяжеловато генерить все пути и перебирать. к тому же есть симметричные фрагменты, где не понять, как прошел
 Hamibar: ну да я тоже не знаю как быстро найти путь заданной длины быстро. А тем более найти их все. Хотя мб и есть какой-то алгоритм.
 Uljahn: алгоритм брутфорса)
 Hamibar: Достаточно быстрый говорят
 dbf: там еще приходится отслеживать скорость и т.д., так что возни хватает ,я пока забил, а чего еще можно сделать, непонятно :)
 Hamibar: Скорость вроде можно по кулдауну абилки отследить.
 dbf: ага
 gybson_samara: Uljahn кстати, про брутфорс и нампи. Как мне в нампи получить сразу все 4 клетки для хода? какую вью сделать?
 Uljahn: gybson_samara: в книжке не смотрел, как игра жизнь сделана?
 gybson_samara: смотрю
 gybson_samara: и про графы смотрел
 AntonT: а у вас тоже в начале в инпут приходят пеллеты, которые видны только противникам?
 dbf: AntonT, те которые стоимостью 10 приходят
 Uljahn: может, это через варп видно?
 Uljahn: да, супер-пеллеты всем видны
 AntonT: я чёт сейчас отрисовал, и мне все видны...
 Hamibar: а какая лига?
 AntonT: серебро
 AntonT: все, которые видно пакам, если быть точнее. Но не только моим, но и противника
 Hamibar: мб вы на одних линиях стоите?
 AntonT: да не, я не настолько тупой)
 Hamibar: кинь сид
 AntonT: seed=-1018878394437563650
 AntonT: а всё, затупил, но по-другому)
 AntonT: прошу прощения за беспокойство)
 Hamibar: прикольный сид кстати
 S0L0: единственный на котором я выигрываю у босса серебра 
 vrabosh: блин придумал новый алгоритм, но ппц писать придется.
 vrabosh: где можно ускорить брут раза в 3 как мин.. это на питоне можно под 15 клеток спокойно перебирать.
 vrabosh: проходные точки не учитывать в расчет.. только для этого придется граф или карту перерисовывать предварительно.
 ashelkov: да я и на джсе вроде на 15 смотрю
 ashelkov: на питоне надо на все 30 смореть))
 vrabosh: может быть. просто я поверх 300 строк кода еще этот делаю.. одного юнита беру и на нем пробую новый алгоритм а другие по старому ходят)
 vrabosh: с нуля уже не хочется писать
 ashelkov: у меня 580 строк гдето/ я пишу в VScode на тайпскрипте (импорты / разные файлы) потом rollup-ом собираю бандл и копирую сюда
 vrabosh: группировка нечно куча проблем решит.. и проще будет противника отслеживать.. если он встал на сгрупированную клетку..то сразу ветку в приоритете понижать.
 ashelkov: оно конечно дрочь,  но зато классы импорты и по полочкам
 vrabosh: ну я уже выдохся.. впадлу это делать.. еслиб вначале эта идея пришла
 ashelkov: ну это ясно я прошлый OOC писал в едиторе встроенном/ в голду как-то вышел но макароны страшные были
 ashelkov: и улушать невозможно
 vrabosh: я просто в бруте позволял повторно проходить точку.. чтоб типа он назад возращался.. или восьмерки проходил красиво.. но таких ситуаций мало.. наверно надо чтоб только 1 раз ходил на точку
 ashelkov: вот это я засабмитился! 44 место!
добро пожаловать в топ)
 ashelkov: это достижение! первый по стране и по javascript! пойду выпью за это)
 gybson_samara: все-таки в numpy координаты пишутся [y,x]
 Uljahn: на самом деле там [row, column]
 Uljahn: кстати, в памяти данные обычно лежат ряд за рядом (С-order), т.е. векторизированные операции по элементам ряда будут значительно быстрее, чем вдоль столбцов, ну это только на больших массивах заметно
 Hamibar: а в чем проблема создать так, чтобы было x y?
 Uljahn: транспонировать придётся
 gybson_samara: и привычку менять
 Hamibar: нее, я имею ввиду не важно ведь что брать за ширину а что за длину
 gybson_samara: ну эта собака строит для каждой клетки ходибельных соседей моментально
 Uljahn: :smiley:
 gybson_samara: ее еще научить с конца строки на начало и обратно переходить =)
 Uljahn: я для себя разграничил индексы и координаты, преобразование элементарное
 gybson_samara: но это две секунды
 Uljahn: тут уже советовали по массиву слева и справа приклеить
 gybson_samara: эээээээээээээ
 gybson_samara: вот код из учебника
 gybson_samara: http://chat.codingame.com/pastebin/21ea9652-cc05-4cdd-98cd-1ab075d604a6
 gybson_samara: тут просто условие поставить
 gybson_samara: про col-1
 gybson_samara: а по верху тут границу нам сразу сгенерили
 Uljahn: ой, всё...
 gybson_samara: ну приклеивать еще хуже
 gybson_samara: вот если к массиву приклеить view массива, вот это вообще чит был бы 
 Uljahn: это можно с помощью stride tricks сделать
 Uljahn: создаётся виртуальная копия данных
 Uljahn: т.е. даже не создаётся
 Uljahn: а метаинформация так модифицируется, что следующая порция данных указывает на ту же область
 gybson_samara: но ттут сквозной проход ...
 Uljahn: я просто три массива сделал и работаю с серединой, потом вырезаю её обратно слайсами
 gybson_samara: рано или поздно придется вернуться, пока всю память не занял
 gybson_samara: я просто делал вот такой же граф фактически, но на лету и всего на 8 ходов
 Uljahn: ахах, я в самом начале контеста так тупанул и пытался выделить 40к х 40к массив, в показателе степени ошибся
 Uljahn: смотрю - out of memory в дебаге
 gybson_samara: да я удачно делаю, просто каждый ход
 Uljahn: так лучше всё в начале посчитать
 gybson_samara: все пути из каждой точки на N ходов?
 gybson_samara: лучше, но пока и так норм
 gybson_samara: из графа рекурсией быстро будет, но вот в нампи ее засунуть
 gybson_samara: если я нампи дам список кортежей (y,x) - он посчитает мне сумму?
 Uljahn: список в array и считай сколько хочешь
 Uljahn: у тебя будет 2D массив из строк по два столбца, можешь сумму по строкам, по столбцам или полностью посчитать
 gybson_samara: тут другая проблема, вот я ему дам список [1,1] [1,2] [1,1] и он выдаст 3, а съедено 2
 Uljahn: так ты убери дубликаты через множество
 gybson_samara: нельзя
 gybson_samara: если в нише лежит 10, то туда выгодно зайти
 gybson_samara: даже если не лежит, то путь с нишей может быть выгоднее других
 Uljahn: ну, значит я не понимаю, что ты хочешь от numpy)
 gybson_samara: пока я получил что хотел, скорость выше, чем со списками
 gybson_samara: если получится дать ему условие типа x!=0, x=0, то круто будет
 Uljahn: для чего условие?
 gybson_samara: т.е. пройти по ячейке и обнулить ее
 gybson_samara: для перебора массива
 gybson_samara: но я и сейчас не обнуляю, так что пока не проблема
 gybson_samara: суть в том, чтобы он делал обратный ход, но при этом этот ход стоил 0
 Uljahn: т.е. посещённые надо трекать
 S0L0: они автоматически трекаются - там нет пеллетов
 gybson_samara: ну допустим перед тобой угол, перед тобой 0, а за углом 10. ты делаешь ход вперед, вбок и обратно, два хода 0 из трех, а в сумме 10
 gybson_samara: вот так и возврат, сходил вперед на 1 клетку, взял 10, а потом обратно
 gybson_samara: потому что обратно выгоднее
 gybson_samara: но если нет 10ок и не учитываешь что ты собрал, то будешь ходить по двум клеткам туда-обратно
 gybson_samara: каждый ход +1, очень выгодно
 Uljahn: я поэтому думал упростить граф, заменить коридоры на ветви со стоимостью, равной сумме пелетов
 Uljahn: или как-то так, чтобы упростить навигацию
 gybson_samara: gtktns bcxtpf.n
 gybson_samara: пелеты исчезают
 gybson_samara: появляются враги и тиммейты
 gybson_samara: это тоже веса ведь
 gybson_samara: Вот я набросал граф с переходом
 gybson_samara: http://chat.codingame.com/pastebin/482283e8-bbbd-4f13-869c-72624f587487
 gybson_samara: это просто тестовая программа на питоне, не конкурсная
 gybson_samara: вроде фырит
 gybson_samara: на каждом ходу надо собрать сумму по этому графу и сделать выбор
 S0L0: что вы там такого считаете что нампи нужен, если симуляцию не используете
 gybson_samara: я считаю наилучший путь
 gybson_samara: как больше собрать
 Uljahn: так надо в комплексе смотреть, по сумме путей тиммейтов
 gybson_samara: надо
 gybson_samara: в субботу утром
 Uljahn: угу
 S0L0: на списках вроде это без проблем
 gybson_samara: только это еще дальше от нампи =)
 Uljahn: списки это самое днище, какое может быть в питоне)
 gybson_samara: вот я в топе бронзы потому, что 8 ходов всего считаю на списках
 gybson_samara: противника вообще пока не считаю
 gybson_samara: и так ТА
 Uljahn: а я два дня красоту наводил, чтобы в дебаге карта была нарядная)
 gybson_samara: я после этого конкурса соберусь и приклею себе бота босса к вскоде
 gybson_samara: ну  не босса, а игры
 gybson_samara: без пошаговой отладки слегка адок
 gybson_samara: как слепой, а тут дебаг еще и в ТА вгоняет
 ashelkov: всмысле в дебаге карта? чем дебажите?
 Uljahn: ну это да, надо профилировать тогда локально
 Uljahn: http://chat.codingame.com/pastebin/5056e090-c6ce-45d1-872e-5fb0cd1b1f48
 S0L0: много карт не входит сразу - обрезает
 Uljahn: ascii-art как в рогаликах)
 S0L0: вот хотел веса выводитьь для всех паков - 5 карт не входит, приходится по 1 смотреть
 ashelkov: я както давеча усатвовал в епам бот челлендже
 ashelkov: так там карта приходила в аски
 ashelkov: ну у тебя был свой клиент и можно было рисовать красоту
 ashelkov: вот
https://www.facebook.com/EPAM.Ukraine/videos/1966325960343931/
 ashelkov: ну тайлсет то их/ у них игры показывались на сайте/ но analitycs layer дорисовать для дебага это что-то )
 gybson_samara: кстати о симуляции
 gybson_samara: граф (читай поле) без стен, которое позволяет и в симуляцию
 Uljahn: на графе единственная засада - проходимость и кратчайшие пути зависят от расположения врагов и тиммейтов
 gybson_samara: пустить по графу все паки по очереди много раз уже не так и затратно
 gybson_samara: тиммейтов учесть не проблема
 gybson_samara: врагов я учитываю пока в начале хода и вполне успешно
 ashelkov: я даже врагов не учитываю в начале (собирался вот)
 ashelkov: но как то вы все усложняете
 gybson_samara: если кто-то нападет на меня из-за угла, то скорее всего он мало соберет
 ashelkov: я написал 1 толковую функцию поиска лучшего пути для1 пака
 gybson_samara: или это случайно
 ashelkov: и каждый ход ее запускаю
 ashelkov: топ60 аж закатило
 wlesavo: я переписал на поиск для всех паков одновременно, вроде заработало даже почти с первого раза
 wlesavo: не знаю че будет, ща еще покручу в селфплее и засабмичу
 gybson_samara: чтобы долго с нампи не сидеть сегодня, переписал все на ходьбу к ближайшей пелете и сабмит попер в гору =)
 gybson_samara: завтра остальное перепишу =)
 ashelkov: о! попался и я на бесконечном корридоре/ прострел на всю карту - затаймилось ))
 Anvilondre: В легенду пускают по такому же принципу? Кто босса победит?
 dbf: да
 dbf: босс обычно уровня топ-15 золота на момент открытия
 Anvilondre: Понял, спасибо
 Uljahn: ashelkov: красава
 ashelkov: спасибо Uljahn. приятно) 
 Uljahn: жс в топе даёт надежду и питону)
 Uljahn: а то прям руки опускаются
 ashelkov: js в топе дает надежду всем
 ashelkov: там дето и пхпшник был
 ashelkov: и это я еще начального матчинга не сделал - бывает бегу на большую пеллету которая ближе к врагу
 ashelkov: так что есть куда подрасти
 ashelkov: но это завтра
 ashelkov: ну да плюсы доминируют в топе/ немножко их js разбавил)