Chat:Ru/2020-05-08
Xanrum: а он такой - "трансфиормация! Лунные ножницы дайте мне силу" - и тебя съедает
735487: я это проверяю же ))
wlesavo: гоняться не выгодно помоему, ты бежишь за ним а он ест точки, плюс может в последнюю секунду форму поменять и тебя съесть
735487: ну если моих больше то зачастую ловят вроде
wlesavo: а, всмысле если вообще один враг остался
735487: да
wlesavo: ну мне ща надо треке делать полноценный, с трекером уже можно будет продвинуться
wlesavo: трекер
wlesavo: но конечно инпуты реально через жопу приходят
Xanrum: так асбтрагируйся, я их тремя уровнями обмотал что формат ввода не влиял на то как я ими манипулирую
wlesavo: да у меня тоже не влияет, но один фиг надо рукамми отслеживать противника, потому что не понятно то ли он ушел из зоны видимости то ли ты его съел
735487: а вообще пора бросать ифы и пилить симу ))
Xanrum: а по таймауту не упадет?
735487: куда оно денется :) не упадет
wlesavo: блин с этими нулевыми таймаутами вообще не понятно как рейтинг меняется
wlesavo: процентов 10 игр таких
wlesavo: ладно, надо сабмитить и оставлять, пусть сами пушат меня потом)
735487: вижу себя на 14 :) пока хватит
735487: прикольно по школам мы втроем опять в топе )) на 4 месте
735487: жаль что нас мало
gybson_samara: у меня около 1000 рандомных расчетов на 6 ходов пока по таймауту не падают, по идее по ГА даже меньше может быть
Hamibar: кто-нибудь уже применяет стратегию кусь из-за угла?
gybson_samara: т.е. я пока прям из первой популяции беру
gybson_samara: оно когда по таймауту падает, то оказывается проблема с папкой юзерской =)
metahom: gybson_samara, ты уже генетику прикрутил?
gybson_samara: я сразу ее сделал
gybson_samara: ну как генетику, 1000 рандомных путей из них по рейтингу лучший выбираю
metahom: аа. ну эт не генетика
gybson_samara: если в пределах 6 клеток хода ничего нет, то ближайший
gybson_samara: ну вот сейчас начну скрещивать
metahom: ты как оцениваешь? по кол-ву съеденных шариков?
gybson_samara: не то что совсем не генетика, просто очень много мутаций =)
gybson_samara: типа того
vrabosh: он иногда ругается на импорт библиотеки нампи.. этож хорошо может повлиять на рейтинг
gybson_samara: в матрице шарик - 1, большой -10, стена - -100 и т.п.
Uljahn: запускать контест перед праздниками, сразу после обновления языков - это надо очень верить в свою удачу
Hamibar: для одного пака найти хороший путь то не проблема, но как сделать так, чтобы они сообща работали я пока не понял
gybson_samara: вот опять "таймаут" "/usr/bin/stdbuf: Resource temporarily unavailable"
gybson_samara: Hamibar в одной симуляции всех запускать
gybson_samara: я вот буду перепиливать седня, для начала сделал каждому отдельно
Uljahn: запускать перебор ходов в разном порядке?
Uljahn: можно ещё как рекурс в корабликах делал
Uljahn: так тоже коллизии похожие были, кстати
gybson_samara: по аналогии с csb одновременно обучать, чтобы в каждый ход было понятно кто где и его ставить аналогично стене, чтобы рейтинг генома ронял
Hamibar: похоже все таки пришло время научиться писать симу)
gybson_samara: есть на пути свой - в трэш
gybson_samara: если на пути чужой которого можно скушать - +оценка
gybson_samara: ну и так и пилить
gybson_samara: и в принципе туман не должен сильно нейронке помешать
Borrow: В серебряной, золотой и легендарной лиге будут дополнения к правилам?
metahom: Hamibar, ничего, на костылях выедем ))
gybson_samara: будет шариться по карте, как кого увидит, так среагирует
Hamibar: metahom я уже напридумывал костылей) но наверное не лучшая идея их реализовывать
BorisZ: Borrow декларируется что не будет, но иногда чуть меняют условия чтобы баланс подправить
BorisZ: в океане макс длинну игры увеличили например и тп
BorisZ: а этот контест полгода пилили, думаю тут более менее должно быть с балансом изначально
DualU: Всем привет! Что за непонятные глюки в пакман-игре?
gybson_samara: система перегружена
DualU: периодически появляется такое сообщение: /usr/bin/stdbuf: Resource temporarily unavailable
metahom: я даж не знаю, что с симой дальше делать. ты не знаешь ни противника, ни вкусняшек наверняка
Uljahn: часть серваков сдохла, разрабов уже подняли по тревоге
gybson_samara: ну так если каждую симуляцию в отладку пихать
metahom: тупо искать путь где больше возможных шариков?
metahom: для этого симуляция и не нужна
Uljahn: вкусняшки-то знаешь самые жирные
gybson_samara: metahom если для симы нет данных, фигач эвристику
Uljahn: не?
metahom: жирные да, но их сразу сожрут
gybson_samara: все, в ребут пошли =)
BorisZ: я пока делаю ставку что не взлетит симуляция и перебор - слишком много вариантов одного хода опять
metahom: gybson_samara, да вот пытаюст понять, что вообще можно сделать
BorisZ: 5 пакманов * 3-4 варианта движения * абилки * оппов не видно
gybson_samara: BorisZ мне кажется в пределах видимости вполне можно, это же получается типа как карты сдали
gybson_samara: перебираешь все комбинации ходов колодой на столе и что-то да выберешь
gybson_samara: как минимум свои сврим мешать меньше будут
BorisZ: дак далеко то не получится просимулировать или далеко но мало вариантов успеешь
Hamibar: gybson_samara все ходы наверное плохо.
DualU: у меня одного чат периодически виснет?
Hamibar: очень уж много получается
Hamibar: DualU тоже было с утра такое
DualU: понял
Hamibar: писало, что нет соединения
Uljahn: вся надежда на симметрию карты и начального положения
DualU: Hamibar, так же было
WhiteCrow: Я почему-то не могу получить доступ к страничке со школами и всей этой бородой
Uljahn: CG is dead atm
WhiteCrow: Полный отстой
gybson_samara: Uljahn думаешь симметрия поможет наполовину симуляции сократить?
DualU: An error occurred (#73): "Only 1 executor running at the same time for a test session".
DualU: что это значит?
WhiteCrow: Нельзя делать два запуска одновременно
ashelkov: (( only 1 executor
gybson_samara: я думал у них хоть под сабмиты другой сервер, типа релизный
Hamibar: кстати про симетрию и не подумал. Получается точно знаешь начальные положение соперника. + в 2 раза больше данных с разведки получаешь
gybson_samara: еще знаешь, что все свободные места сначала забиты палетами
DualU: на всех языках программирования есть такая ошибка: /usr/bin/stdbuf: Resource temporarily unavailable?
DualU: или нет?
Uljahn: серваки чинят, говорят, уже должно быть получше
DualU: а откуда инфа?
Uljahn: из дискорда
Uljahn: в общаке тоже коммьюнити менеджер сообщил
metahom: вот поэтому лучше запускать контест в четверг )))
735487: лучше не обновлять то что стабильно прямо перед контестом
gybson_samara: да какая разница, все-равно сидят на карантине небось
Uljahn: +
Uljahn: у них праздник сегодня
Uljahn: нельзя так рисковать
BorisZ: тибальд пишет что с базой проблема, а обновляли языки вроде
BorisZ: самое время на локальный проект переползать )
BorisZ: хватит в браузере код писать
735487: всегда считал что он Тибауд )))
Uljahn: Тибоу
Uljahn: гугл-транслейт говорит
Anvilondre: ребят, как бороться с тем, что свои пакманы друг-друга блочить начинают?
Anvilondre: мне ничего простого в голову не приходит
BorisZ: может быть по французки это читается как толик или вобще миша )
Borrow: не ехать двумя пакманами в одну точку :)
Anvilondre: не, у меня это предусмотрено
BorisZ: по простому - отслеживать позицию, если не изменилась то блок и выбирать другую цель
Anvilondre: просто они иногда хотят поехать в соседние точки так, что друг в друга упираются
Uljahn: во французском много букв не читается, говорят, это связано с тем, что в средневековые времена монахам платили за количество символов при переписывании книг, вот они и придумали искусственно раздувать код, как джява-кодеры азаз
Anvilondre: да, я думал про отслеживание позиции, но пока не понимаю как оптимально выбрать другую позицию чтобы они опять не заколлизились
Uljahn: посмотри постмортем рекурса для CotC
BorisZ: но это костыль страшный, при нормальной реализации надо будет все пути проверять на коллизии, свои по крайней мере
Uljahn: очень похожий контест, и проблемы аналогичные
BorisZ: просто проще всего запилить быстро
BorisZ: Anvilondre ну храни не только позицию но и предыдущую цель
Uljahn: введи потенциальные поля, чтобы паки отталкивались и разлетались)
Anvilondre: lol
gybson_samara: у меня свой пак на пути -100 к оценке, вроде помогает
Anvilondre: Прикольно
BorisZ: я думал про поля но это не решит коллизию когда один пак в точке 1 другой в точке 3 и оба сползают в точку 2
BorisZ: надо все равно пути как-то генерить и чекать для всех паков
gybson_samara: for i in range(300): http://chat.codingame.com/pastebin/16e9b87f-5f63-44cc-a35e-c664e5646bb2
gybson_samara: остается сделать не 300, а 30 и прогнать скрещивание-мутации
gybson_samara: но босса в бронзе и так делает,
Hamibar: какого боса в бронзе?
Uljahn: ))
gybson_samara: другого-то и нет пока
Uljahn: default ai - это бот для тестирования, он слабенький специально сделан
Uljahn: другого-то и не будет, пока сильвер не откроется
Anvilondre: сложна
gybson_samara: лагишна
Hamibar: я думал топ 1 это босс бронзы пока)
gybson_samara: надо ГА докрутить, добавить ему включение скорости, а коллизии на эвристике
metahom: а жирных точек всегда 4?
Anvilondre: Мне кажется я 2 встречал
Anvilondre: И 6 по-моему было
metahom: сейчас раз 6 запустил и всегда 4 штуки
Anvilondre: А да, та же фигня
Anvilondre: Странно, я почти уверен что на дереве у меня было 6 штук
metahom: ну может в дереве и по другому было
metahom: интересно, в серебре поменяется?
metahom: кстати, а бонусов не будет все таки?
dbf: я что-то залип на вот этой фразе из условия "making it take the first 2 steps along its path when moving"
Uljahn: в бронзе финальные правила, если что-нибудь не случится
dbf: кто-то может пояснть, что тут написано?
Uljahn: ходит на 2 клетки вместо одной
gybson_samara: ну вот пример перебора https://www.codingame.com/replay/458483853 28 ход примерно
dbf: на 2 клетки только по прямой? или на поворотах тоже?
dbf: всмысле для любого движения на каждый ход доступно 2 клетки, или какието ограничения?
Uljahn: хз, я даже не понял из обсуждения на дискорде, можно ли ходить на одну клетку, если задать соседнюю координату :/
Uljahn: вроде бы можно
gybson_samara: я так хожу
Uljahn: it's what the statement says you don't move 2 cells at once every pacs moves 1 cell, the game handle collisions, kills and pellet eating, then pacs with speed moves 1 more cell, then collisions, then kills, the pullets
Uljahn: фигасе
Uljahn: (из дискорда)
metahom: ну логично
gybson_samara: т.е. если я дам ему клетку по диагонали, то он сделает два хода
dbf: т.е. все ходят на одну, а потом те, кто ускорен, еще раз на одну?
Hamibar: я так думаю, чтобы не было прыжков через паков так сделано
gybson_samara: прыжки через пилеты еще обиднее =)
metahom: gybson_samara, это перебор или рандомные пути?
gybson_samara: это перебор рандомных путей
metahom: ну этого я и боялся. часто не находит лучший вариант и шарахается туда-сюда
metahom: можно увеличить на какую глубину ищешь?
metahom: это два вопроса)))
gybson_samara: http://chat.codingame.com/pastebin/16e9b87f-5f63-44cc-a35e-c664e5646bb2
gybson_samara: вот так без таймаутов
gybson_samara: если приемлемое решение не найдено и верули None, то ближайшая точка
gybson_samara: с самого начала все свободные клетки помечаю как с пелетами, там где прошли паки скидываю в 0
gybson_samara: там куча мусора, но в целом понятно
metahom: можно количество просмотренных путей увеличить?
gybson_samara: если оптимизировать код, то кончено
gybson_samara: его даже сообщения отладчику в таймаут вогнать могут =)
gybson_samara: но лучше доделать до ГА
gybson_samara: с таким количеством рандомов наращивать бессмысленно мне кажется
gybson_samara: сделать 30-50 и прогнать по ГА
gybson_samara: там просто если путь длинный, то количество симуляций меньше и все еще хуже
Anvilondre: есть какие-то минусы у использования абилки скорости по кд, если я пока забил на switch?
metahom: сожрать могут ))
Uljahn: ход стоишь
Anvilondre: ну мой пакмен пока что слишком тупой, так что его в любом случае сожрут :grin:
wlesavo: ну все, пора писать трекер
Uljahn: если встал рядом с жирной, её могут из-под носа увести, т.е. когда вместо скорости можно было сделать просто мув
gybson_samara: а когда серебро?
Uljahn: первый контест у тебя?
gybson_samara: второй
Uljahn: кликай на значок лиги около таймера
Uljahn: там есть месяц/число/год открытия лиги
gybson_samara: выходные будут жаркими
gybson_samara: чистый ПвП
Uljahn: потом лиги каждые два дня открываться будут
Anvilondre: по какому принципу выбирают тех, кто проходит в серебро?
gybson_samara: кто босса бронзы победит
Anvilondre: так в бронзе же нет босса
gybson_samara: появится
Uljahn: ближе к открытию лиги админы выберут среди ботов игроков того, кто будет боссом
Anvilondre: интересно
Uljahn: выбирают так, чтобы определённый процент прошёл
Anvilondre: а сам босс проходит в серебро?)
gybson_samara: и выложат его код?
Uljahn: нет
gybson_samara: а если он сам уже успеет выложить?
Uljahn: бот игрока - да
Uljahn: кажется, \они немного ослабляют босса, чтобы сам игрок смог пройти
735487: за шаринг кода могут и забанить
Uljahn: дискавлифай
Uljahn: в леге проверяют код на наличие заимствований, ну и подозрительных ботов с идентичными реплеями
gybson_samara: так вроде до голды нельзя стримить и т.п.
Uljahn: до голды можно
Uljahn: в дискорде разрешили
gybson_samara: ну т.е. можно
Uljahn: но код шарить нельзя
gybson_samara: а какая разница-то?
Uljahn: спроси в дискорде, я уже спрашивал
Uljahn: тоже не понял, почему нельзя, что за двойные стандарты
gybson_samara: я в языках НАТО не силен
Uljahn: http://chat.codingame.com/pastebin/32934048-b588-4806-bed3-2c3b9488aeda
Uljahn: It's still not "allowed" but enforcement is always a different story.
Uljahn: короче, можно, но только нельзя
phatal: в бронзе пока ранк не начисляется или я чего то недопонимаю? (извиняюсь если глупый вопрос - раз в году захожу поучаствовать) :)
metahom: ранк?
Adlet: Можно приравнивать какой-то строке движение и ее выводить?
BorisZ: phatal если ты имеешь ввиду code points то они начисляются после окончания контеста, по финальному месту
BorisZ: Adlet не понятно, что приравнивать (
BorisZ: присваивать переменной строку с командой можно конечно
BorisZ: cmd = f"MOVE {id} {x} {y}" print(cmd)
wlesavo: прикрутил тракинг противника и пеллетов, вроде норм даже работает
BorisZ: ну ты монстр просто блин
BorisZ: самый быстрый стрелок к западу от миссисипи
metahom: ого. а как ты противника трекаешь?
wlesavo: сделал видимо чтото похожее на то что uljahn делал для ooc для возможных позиций противника делаю ролл в четырех направлениях и потом домножаю это на маски видимости и грида
wlesavo: ну и если обнаружил то обрезаю все позиции
metahom: у тебя теперь все возможные позиции противника?
wlesavo: потом беру среднее по координатам, если попадает на грид то просто случайную точку из возможных
wlesavo: и если возможности пустые удаляю противника
BorisZ: а чего не взлетает? скорость не юзаешь еще?
wlesavo: так я только сабмитнул
wlesavo: идет хорошо
wlesavo: ну там еще нужно баланс между свичами и скоростью подобрать будет
NightLuna: у меня, и не только у меня, как будто сабмит завис, уже часа 2...
wlesavo: может все игры отыгрались просто процент неправильно отображается
NightLuna: может
metahom: в дискорде жалуются что лидерборд подвис
wlesavo: мда, трекер не работает нифига
wlesavo: при этом играет хорошо, но это видимо изза того что пеллеты еще добавил
gybson_samara: прикрутил спаривание в ГА, с ростом начальной выборки и кругов спаривания растет результат
wlesavo: а блин, это же еще скорость надо учитывать
wlesavo: жопа
gybson_samara: ГА 300 начальная популяция, 100 итераций скрещивания половины выживших, вроде без таймаутов
gybson_samara: https://www.codingame.com/share-replay/458577882
gybson_samara: кушают очень хорошо, прям как лонгольеры. И вроде не тупят туда-обратно
NightLuna: все, раскуксился лидерборд
gybson_samara: ну вот, 238, а то все 700
gybson_samara: wlesavo а ты для трекинга учитываешь пустые клетки, вс которых ты не ел?
wlesavo: которые не ел и не видел
vrabosh: стою на 5,6 говорю идти ему на 5,7, он идет на 5,5 - не сталкивались с таким?
gybson_samara: Uljahn pop = sorted(pop, key=lambda x: x[0])[len(pop)//2:]
gybson_samara: вот это как ускорить?
Borrow: он же пары в лексикографическом порядке всё равно будет сортировать
Borrow: если убрать лямбду, то функция sorted будет работать чисто сишная реализация, не заныривая в питон
Borrow: это будет существенно быстрее
gybson_samara: там пары вида [[[],[],[],[],[],[]], int]
gybson_samara: а, не, int спереди
inoryy: перейти на С++ :)
gybson_samara: но попробую
gybson_samara: ну мож numpy поможет
wlesavo: хм, положительный винрейт против топ 1 при тестах в иде, ща засабмичу
Borrow: секрет написания быстрых программ на питоне состоит в том, чтобы не писать их на питоне. А вместо этого вызывать функции (например, из стандартной библиотеки), написанные на си.
gybson_samara: я же не импортну сюда FA
gybson_samara: GA
inoryy: да все равно будет в 100х медленнее, всё через нампи не протянешь
Uljahn: +
gybson_samara: ну значит придется заняться
gybson_samara: сюда еще скорость добавлять в аналитику, превращения
Uljahn: я кстати лямбду написал, потому что думал, что может понадобиться сортировка по второму элементу (вроде так и было изначально)
Uljahn: если ты поменял порядок - то она не нужна, действительно
inoryy: operator.itemgetter
inoryy: жизус в бронзе 1.2к человек
inoryy: то у них W1 боссы сильнее голды в некоторых соревнованиях то вот это, золотой середины не видали
wlesavo: по логике бронзового босса должны сильным делать сейчас
dbf: в бронзовом боте исправят :)
dbf: боссе
wlesavo: хм, кажись в топ 10 ща войду
inoryy: блин, знал бы что оос так похоже будет
Uljahn: не очень похоже
inoryy: хорошая заготовочка наверно у тех кто делал
wlesavo: да вообще внезапно много элементов похожих
Uljahn: а, трекинг
inoryy: что не похоже даже я пол своего говнокода 1:1 перетянул
inoryy: Borrow предыдущее соревнование
Uljahn: дак полкода из любого мульти можно перетянуть
wlesavo: я поиск пути взял, трекинг новый все таки написал
Uljahn: они все похожи)
inoryy: ну ок давай перетащи цсб сюда
Borrow: и какой там был подход у победителей?
inoryy: трекать движения соперника масками
wlesavo: о, на 6ое место сабмитнулся
dbf: If the pacs are of the same type or belong to the same player, both pacs will go back to the cell they moved from. If the pacs are of different types, they can land on the same cell, but a pac can't cross the path of a stronger pac: it will be blocked.
metahom: красава
dbf: т.е. если на соседних клетках камень и ножницы и они шагают друг к другу, то ножницы остаются на старой клетке, камень переходит туда и съедает их?
NightLuna: кажется, что тут сложнее трекать, чем в оос, нет?
Hamibar: Если я правильно понимаю, то не особо сложнее. Ты же знаешь стартовое положение.
wlesavo: ну с той же точностью впринципе невозможно, просто чтобы через пару ходов хоть какая-то информация оставалась о сопернике
NightLuna: зато в оос знал относительное положение... ну если не считать сайленсы, конечно
inoryy: по пелеткам и их отсутсвию можно определить
wlesavo: с другой стороны в оос у меня трекер был строчек на 300, а здесь едвали 30 наберется
NightLuna: если еды нет, значит ее кто-нибудь съел, ну да
wlesavo: inoryy это уж совсем некст лвл
wlesavo: ну всмысле можно то да, но не понятно кто съел и когда, и там возможные положения очень быстро плодятся
wlesavo: то есть эта информация быстро теряет релевантность
wlesavo: скорее всего эвристику потом прикручу чтобы если давно видел не учитывать противника этого
NightLuna: а как тогда, использовать начальное положение и то, когда последний раз его видел?
wlesavo: так начальное ты тоже не знаешь
wlesavo: а когда увидел последний раз делаешь из всех точек валидное движение и проверяешь не попало ли оно в область видимости
wlesavo: которые попали отрезаешь, остальные оставляешь
wlesavo: если пусто в возможных точках то отрезаешь этого пака
Hamibar: wlesavo как это не знаешь начальное положение. Карта же симметричная и начальные положения тоже
wlesavo: о, вот это я дурак
Borrow: А как множество возможных точек может быть пустым? Это только если баги в эмуляции.
wlesavo: еще и типы симметричные, охренеть
Hamibar: и айдишники
wlesavo: так это вообще меняет дело
wlesavo: ох как приятно смотреть на сабмиты где ректишь всех
wlesavo: на самом деле симметрия типов даже важнее чем положений помоему, потому что никто пока не встретится не будет менять тип
wlesavo: то есть ты практически всегда знаешь тип противника
wlesavo: Hamibar спасибо кстати, не знаю когда бы я еще про это вспомнил
Uljahn: :smirk:
Hamibar: Не за что) Я тоже сам не вспомнил бы.
MadKnight: как понимать фразу proof is relative ?
Uljahn: в контексте
gybson_samara: правда относительна, кмк
gybson_samara: доказательства относительны
gybson_samara: видимо имеется в виду, что монгут использоваться обеими стронами
wlesavo: здесь скорее не относительный а имеющий отнощение к делу
wlesavo: отношение
Uljahn: тогда было бы is related (to), не?
wlesavo: ну короче контекст надо
Uljahn: без контекста только гадать, да
gybson_samara: или это расхожее выражение
Uljahn: не гуглится
wlesavo: pertinent; relevant: documents relative to a legal case
gybson_samara: чет туплю, а как тут телепорты обозначены с одной стороны на другую?
gybson_samara: хотя вижу
gybson_samara: они только горизонтальные
wlesavo: просто если нет границы на карте ты можешь пройти через нее
inoryy: если на питоне то (x + delta) % max_width
gybson_samara: верхняя и нижняя границы не обозначены
Hamibar: тут как в змейке
inoryy: питоновский мод негативные числа разруливает
gybson_samara: если по горизонтали ты стоишь на краю карты, значит можешь перейти на другой конецй
gybson_samara: если ты по вертикали стоишь на границе, то нифига
Hamibar: как я понимаю, если там нет стены то можно и по вертикали так ходить
wlesavo: просто вертикальных ворот нет в игре
gybson_samara: да, и по вертикали нет стен
Hamibar: у меня обычно y 0 - стена
Hamibar: не видел других вариантов
gybson_samara: а ведь и верно
gybson_samara: по y =0 тут стена
735487: не факт что не будет
gybson_samara: в результате граф таки строю, просто рандомно в стены тыкаться не так эффективно
Uljahn: Мэд 2100-й
wlesavo: он наверное стаб сабмитнул
MadKnight: я 13-й в w2
MadKnight: уже 16й
MadKnight: а босс 9й
MadKnight: какие у вас алгоритмы посоны?
gybson_samara: да тут до бронзы с одним ифом проходят вроде
gybson_samara: def find_pellet(self, pac): http://chat.codingame.com/pastebin/b03e8188-865c-4ba4-a3ea-fd55d01f6ddb
MadKnight: ща запилю
gybson_samara: я до бронзы с симой влетелй простейшей
gybson_samara: 300 рандомных путей просчитал и выбрал лучший
gybson_samara: или 1000
Hamibar: для бронзы достаточно кусать ближайшую вкусняху
gybson_samara: но если не выбрал, то вон то =)))
wlesavo: я еще в оценку пути закладываю типы врагов и пересечения с путями других паков
MadKnight: дают в visible пустые клетки?
wlesavo: нет
MadKnight: или мне теперь надо самому парсить где они пропали?
wlesavo: самому
MadKnight: "1 строчку"
MadKnight: "один иф"
MadKnight: я вспомнил почему я его сразу не запилил
wlesavo: я удаляю всю зону видимости и потом туда накидываю те что пришли в видимых
Hamibar: блин я думал дают все клетки которые видишь
MadKnight: Hamibar самому считать надо
Hamibar: теперь понятно)
gybson_samara: в дереве дают
gybson_samara: а чо там видеть то? стены и корм сразу известны
gybson_samara: где не стена, там корм, а уж съели его или нет, может до серебра и думать не придется
gybson_samara: wlesavo это ты палетки чистишь?
wlesavo: gybson_samara ну да
gybson_samara: я неизвестные за полшишки считаю =)
wlesavo: чтобы отслеживать пропавшие
gybson_samara: удаляю только те, по которым точно кто-то ходил
wlesavo: ну я пока не взвешивал, нужно тракер улучшить чтобы взвешивать
wlesavo: я удаляю только те которые вижу что пропали
gybson_samara: я исходил из того, что иногда придется куда-то идти, тут полшишки и помогут
Anvilondre: как вы пути находите? вручную?
ashelkov: шо вы там уже все в золоте?
Uljahn: уже призы получаем
ashelkov: чудеса! поздравляю!
Uzere: один иф действительно доводит до бронзы. Время писать второй
gybson_samara: ashelkov я при загрузке карты к каждой ячейке сопоставляю массив клеток, на которые можно с нее пойти в течении 1 хода
gybson_samara: обычные связанные списки, графы
ashelkov: я так понял серебро откроется только 11мая?
735487: да
BorisZ: кто вошел в бронзу совсем без ифов смеется над вами
BorisZ: с ифами каждый сможет
ashelkov: чисто на елсах
BorisZ: жалко что за это призов не дают
BorisZ: мы бы тут всех побороли )
spaceorc: у меня нету ифов но есть linq и OrderBy. это считается?
BorisZ: функциональщикам бан за читерство
inoryy: дак тут без ифов фигня вопрос
inoryy: на сортировке пелеток далеко улететь можно наверно
BorisZ: у меня мин по видимым пелеткам, если нет то по непосещенным, но по манхеттену, поэтому они дергаются туда-сюда время от времени )
BorisZ: по манхеттену в одну сторону а по графу в другую надо )
wlesavo: лол, топ1 был на питоне уже переписал на плюсы
735487: BorisZ: прямо как у меня ))))
Uljahn: о, Мэд и Khao закатились в бронзу
Uljahn: и контур на первое вышел
dbf: а поясните с ускорением - если оно включено, я могу в качестве Move-параметров передать клетку на расстоянии 2 и пакман туда сходит? а по какой траетории он пройдет, мне же не вернется управление в середине?
735487: нет управление не вернется. походит по траектории которую алгоритм в рефери найдет
dbf: я просто чего интересуюсь: есть квадратик 2*2 я указываю цель по диагонали. по одному из путей еще дополнительная еда. но я не могу гарантировать, что он пройдет именно через нее?
dbf: 01
dbf: 23
dbf: вот если такая карта, я стою в 0 и говорю "иди в 3", он может и через 1 и через 2 пройти?
735487: надо смотреть в рефери как там реализован приоритет
dbf: я открыл, там AStar.java, сразу закрыл :)
Uljahn: погоди, что за квадратик?
dbf: а, там корридоры толщиной 1 максимум
Uljahn: угу
dbf: значит не будет такой проблемы, наверное
Uljahn: точно
dbf: я просто понял, что врубаю скорость 2, а направлюя все равно на соседнюю клетку :)
735487: блин я собирался в симе делать команды идти по сторонам света а теперь выходит что это не катит со скоростью включенной
735487: на поворотах буду терять 1 ход
Uljahn: давай две команды)
Uljahn: по симе они всё равно должны последовательно выполняться с разрешением коллизий после первого хода
Uljahn: потом два вектора сложишь, прибавишь к начальной позиции и получишь цель
735487: ну как вариант в mcts всегда делать по 2 команды а если скорости нет то пропускать
metahom: у кого-нить таймаутит на первом ходу?
tomatoes: 3x3 квадраты со стеной в центре возможны :thinking:
tomatoes: seed=7666424681901872785
tomatoes: неизвестно как пойдет из угла в угол, но в принципе не проблема если не посылать далеко
Uljahn: известно, если рефери прочитать)
Uljahn: в гиперсонике было такое
Uljahn: только тогда рефери не давали
WhiteCrow: Ну там всё равно алгоритм был достаточно предсказуемый
WhiteCrow: Квадратов 2х2 без стены быть не может?
tomatoes: не может
Hamibar: всю голову себе сломал почему начинают метаться мои паки. Пока не догадался, что я строю другие кратчайшие пути. Нельзя просто дать точку назначения)
Xanrum: рассчитанный кратчайший путь не всегда кратчайший?
Hamibar: просто есть несколько кратчайших
Hamibar: опять борда зависла? или это только у меня
Bzn0r: а известная проблема что на старте по таймауту оба игрока падают?
735487: да скорее всего если хочешь чтобы он двигался как ты задумал то задавать координаты буквально для следуюего тика
735487: Bzn0r: я думаю известная, не знаю правда знают ли админы но игроки все вкурсе :)
Bzn0r: а ну гуд, я сам не играю толком, но меня один товарищь спрашивает во всю))
Hamibar: конетст, который готовили на коленке пару дней прошлел лучше, чем тот который готовили пол года:upside_down:
Hamibar: А можно ли указывать точный путь при увеличенной скорости?
dbf: похоже, что нет
Hamibar: жаль)
Borrow: тебе же надо указать путь только на две клетки вперёд, там нет неоднозначности
Borrow: единственное, ты не можешь зайти в тупик и сразу вернуться
Hamibar: может возникнуть. Можно пойти вверх направо или направо вверх. Но наверное не критично.
Uljahn: если цель в двух шагах, то не может быть неоднозначности
Uljahn: угу, квадратов 2х2 на картах не бывает
Hamibar: разве не может быть квадратика 2 на 2 ?
Hamibar: а ок
Hamibar: тогда да
Hiker: Добрый вечер. а тут как-то можно отлаживаться? в браузере?) или запускать повтор игры локально?
Uljahn: можно в дебаг выводить
Hiker: то я получаю ошибку и совершенно не поняно за что
Uljahn: можно скачать реплей и тестить локально
Hiker: Вывод в дебаг - единственная возможность?
Uljahn: https://www.codingame.com/playgrounds/53705/contest-tools-and-workflow/introduction
MelnikovIgor: Только у меня таймауты внезамно начали появляться?
MelnikovIgor: Только у меня таймауты внезапно начали появляться?
tomatoes: вроде как сишарп поломали
MelnikovIgor: ясно, у меня как раз он
MelnikovIgor: Где инфа есть?
tomatoes: We have found the origin of the C# issue. Sorry for the problem. We are rolling out a fix
tomatoes: World чат
MelnikovIgor: Спс
WhiteCrow: Такс-такс-такс, что тут у нас?
Borrow: Ничего себе у них формат риплеев долбанутый. Json, который одним из полей содержит минифицированный код просмотровщика на джаваскрипт.
Borrow: И этот джаваскрипт в свою очередь содержит json со спрайт шитами и командами рисования.
MadKnight: это скорее всего потому что у них game SDK на котором кто угодно может игру запилить
Hiker: А что значит поломали? если у меня говорит "has not provided 1 lines in time" , хотя я провайдед
MadKnight: значит не провайдед
MadKnight: или не дописал \n
Hiker: та проблема вся в том, что это их изначальный код
Hiker: вот я думаю, вроде выше писали что си шарп сломали, может это оно?
MadKnight: покажи код
submind: их код на c# не работает
MadKnight: может ты случайно стёр символ?)
submind: хотя тот же их код на других языках работает
MadKnight: это для контеста?
MadKnight: а, вроде я что-то слышал про поломку шарпов
MadKnight: ты в их дискорд зашёл?
MadKnight: [CG]NickToday at 9:19 PM We have found the origin of the C# issue. We are building/releasing a fix
MadKnight: submind
Uljahn: несколько раз уже в чате написали на всех каналах
MadKnight: нужно больше
WhiteCrow: Парни, а что не так с C#?
Hamibar: Он сломался. Но вроде уже починили
Hiker: А что должно происходить, после того, как я нажал сабмит? почему просто ожидание и ничего не происходит
Hamibar: Но у меня теперь сабмит завис. Когда шарп был сломан мен больше нравилось
Hiker: а прикинь какого мне. первый раз на платформе, сначал верный код не принимало, теперь вроде приняло, но нету боев
Hamibar: Hiker должны бои начаться. в last battes можно посмотреть
tomatoes: после сабмита last battles должно открыться и пойти бои
Hamibar: ага у меня тоже
Akarachudra: Ну все, теперь в топ3
Tunez: размер поля фиксирован?
Hamibar: 2 ≤ Number of pacs per player ≤ 5 29 ≤ width ≤ 35 10 ≤ height ≤ 17
Tunez: сяп
Hiker: а как узнать сое метло?
Tunez: слева есть шторка
Tunez: leaderboard
Hiker: ага. ьам лидерборд но как найти себя
Tunez: full leaderboard
Hiker: о. господе меня кинуло в некст лигу. я даже есебя в первой не нашел =
Hamibar: слева от боев можешь себя найти в списке
tomatoes: в ласт батлз справа
Hiker: о. крутяк. в глобальной таблице нашел. спасибо.
Hamibar: а в лидерборде у меня первая строка и черным выделяется.
Hiker: у меня черным в лидерборде почему-то босс выделяется-бот, а не я
Hamibar: еще можно в самом ide рядом с названием лиги
Hamibar: вверху
Hiker: оо вот это топопво!!
Hiker: спасибо
Hiker: так. а сколько всего лиг ?)
Hiker: отбой виду
Hiker: вижу
Hiker: всемспасибо! разобрался кажется.
Hamibar: с помощью казуального ускорения смог попасть в топ 200. Похоже это выгодно.
NightLuna: о, unsafe вернули в шарп, круто
WhiteCrow: Отстой
MadKnight: почему
NightLuna: а я уже (очень оптимистична и полна веры в себя) поставила себе плюсы, но нет, подождут до лучших времен видимо
WhiteCrow: ЛОЛ
MadKnight: тебе так сильно нужны указатели в шарпах?)
MadKnight: WhiteCrow так почему отстой?)
NightLuna: это тоже входит в веру, что они мне понадобятся. обычно мне лениво заморачиваться сильнее, чем эвристики...
NightLuna: я то думаю, почему у меня 20 игр подряд проиграны и я с 200 места на 500 съехала, думала, что нифига все прокачались, а там везде таймауты
MadKnight: ну бывает
NightLuna: тайматы не изза меня, скорее всего у них что-то временно не работало
Xanrum: указатель в шарпах рулит, вроде и арифметика есть, и сборщик мусора работает
WhiteCrow: MadKnight потому что я пишу на плюсах, а не шарпе
Hamibar: хах, забавный баг. Ставил вкусняхи на пройденном пути а не убирал)
WhiteCrow: А айдишники жукам всегда симметрично выдаются?
WhiteCrow: Hamibar что характерно, у меня в коде эти штуки называются Poop
Hamibar: Судя по играм да. Но не видел, чтобы где-то было написано, что обязательно так.
Hamibar: не повезло твоим пакам
WhiteCrow: Или пакам противника...
aropan: Всем трям.
WhiteCrow: Дратути
Telpenair: Привет, есть скалисты?)
aropan: -
tomatoes: https://www.codingame.com/replay/459145266
Uljahn: kotobotov раньше был, но давно не заходил
WhiteCrow: Паскалисты?
aropan: На нем еще кто-то пишет?
aropan: Или ты так для красивого словца спросил?
WhiteCrow: Второе :)
aropan: Тогда я не буду отвечать, что знаю его.
ashelkov: у всех такая фигня что при сабмите достаточно много timed out looses?
zuko3d: у меня бывают рандомные таймауты. В среднем страта работаем 30мс, но иногда хоп - и таймаум.
ashelkov: ну чето у меня половина проигрышей таймаутом - надо разбираться/ блин
zuko3d: не, у меня не половина. мб один из 5-10
zuko3d: ты чем пользуешься для замера времени?
ashelkov: да пока не мерял не было проблемы/ теперь буду обычным js date.now()
WhiteCrow: js
WhiteCrow: JS
zuko3d: это опасно - измерять время через now. Твоё решение запускается в разных потоках с перерывами по времени (в процессе работы). Т.е. реальное время работы может сильно отличаться от того, что покажет разность между now в начале и конце одного хода.
WhiteCrow: http://chat.codingame.com/pastebin/52b35654-6adb-4f83-bb6d-95d2403bfd57
ashelkov: @zuko a как жу тогда мерять?
zuko3d: в js не знаю. На C/C++ есть clock()
zuko3d: он считает количество тактов, которое было потрачен на конкретно твой процесс
ashelkov: ну вот )) performance.now() тож. не работает
ashelkov: эхх/ в браузере я бы всех победил ))
zuko3d: потому что now() выдаёт тебе текущее время. в надо считать такты
zuko3d: спроси у кого-то из топа на JS, как они время измеряют
ashelkov: пересабмитил - вроде без таймаутов стало/ хер знает что это было
miklla: If the pacs are of different types, they can land on the same cell, but a pac can't cross the path of a stronger pac: it will be blocked. я не понимаю, разве это не противоречивые условия?
miklla: разве если они разных типов, не следует ли из этого, что кто-то из них сильнее
zuko3d: видимо, суть в том, что если твои камень и бумага встретились, то бумага сможет походить, а камень - нет
miklla: не может быть
miklla: это исключается предыдущим предложением "If the pacs are of the same type or belong to the same player, both pacs will go back to the cell they moved from."
zuko3d: If the pacs are of the same type
zuko3d: а камень и бумага - разное
miklla: or
miklla: belong to the same player
zuko3d: хм..
zuko3d: да, бредово
miklla: я пытаюсь понять код рефери, но ппц
miklla: походу сначала все возможные убийства производятся в реальность, а потом разрешаются коллизии
miklla: хотя у меня есть запись, как 3 пака идут в одну точку, так 1 должен был погибнуть, но не погиб
miklla: мой камень, моя бумага, вражеская бумага
metahom: miklla, может твои два пака блокируют друг друга?
miklla: типа да, но коду рефери я не понимаю, почему это привело к такому результату
miklla: хотя наверное я просто не знаю джавы, фильтры какие-то
miklla: всё-таки перед убийствами некоторые блокируются
metahom: ну вообще по правилам так и должно быть. сначала разрешение коллизий, потом убийства
metahom: ого, почти 3К участников. хороший контест будет
miklla: в принципе прикольный, жаль у меня нет времени на него
metahom: а мне вообще не идет :(
miklla: скорее всего придётся довольствоваться золотой лигой\
miklla: но некоторые правила вызывают вопросы
miklla: по передвижению
miklla: в дискорде кто-то скидывал реплей, там в одну клетки шли 2 камня одной команды и 1 бумага другой
miklla: и в итоге все остались на своих местах
miklla: выглядит нелепо
metahom: по идее бумага должна была прийти
miklla: ой
miklla: неправильно написал
miklla: 2 камня одной команды шли в одну клетку, а вражеская бумага там стояла
miklla: и все остались на своих местах
miklla: я немного переставил типы, но суть оставил https://www.codingame.com/replay/459145266
metahom: ну тогда нормально. соответствует правилам :)
metahom: вообще странная штука с этими камнями. зачем было это добавлять?..
miklla: чтобы не было тупых ничьих, когда все во всех упёрлись
metahom: ну это проблемы игроков. нужно избегать коллизий
metahom: да и ничьи будут редко, у кого-то хоть на 1 очко больше бдуте
metahom: будет*
metahom: мне кажется так хотели добавить игровой (на логику К-Н-Б) и боевой на уничтожение друг друга момент.
miklla: локи были бы куда жёстче xmas rush
metahom: https://www.codingame.com/replay/459032665
metahom: уже начали switch включать. правда пока не оч успешно
miklla: metahom раз понял правила, пожет подскажешь, что имеется ввиду в If the pacs are of different types, they can land on the same cell, but a pac can't cross the path of a stronger pac: it will be blocked.
miklla: по-моему две части предложения противречат дрпуг другу
metahom: вот этого я не понял
metahom: может быть суть в том, что если ножницы на спиде и идут на 2 клетки, камень не сможет на пути встать
metahom: хотя по идее его должно было бы съесть
metahom: т.е. не камень, а бумага
miklla: ещё в Defeat conditions не хватает варианта, что все твои пакмены умерли
miklla: и настал конец игры, а у тебя меньше
miklla: обычно такое писали
miklla: вместо этого как-то вынесли эти условия наружу
metahom: может соперник все равно не успеет больше тебя очков набрать
metahom: и ты выиграешь со всеми мертвыми ботами
miklla: If all of a player's pacs are dead, all remaining pellets are automatically scored by any surviving pacs and the game is stopped.
metahom: аа, ну тогда да
miklla: внезапно у меня браузер научился ориентроваться в джава проекте на гитхабе, вот это чудо
miklla: (яндекс браузер)
metahom: ты юзаешь Яндекс браузер? о_О
miklla: хром пришлось удалить, что остаётся
metahom: ФФ
metahom: а почему хром удалил?
miklla: вирус
miklla: заражён он в общем
miklla: а хром умеет так?