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 разбавил)