Chat:Ru/2020-05-12

From CG community
Jump to navigation Jump to search

Uljahn: ахах уже 500+ в серебре

wlesavo: так я говорю, с 200 уже 500, 300 промоушенов

Uljahn: а, я и не понял

AntonT: а нафиг вообще нужен статус DEAD?)

piter239: Anton: пока кажется, что лишь "дань памяти героям" - трупики видны, но ни на что не влияют

zuko3d: ну так-то это влияет на стратегию. Если у тебя живых больше, чем у оппонента - можно боле нагло бегать и собирать, чаще делать SPEED вместо SWITCH

MelnikovIgor: С какого момента начинается отсчет времени хода?

zuko3d: если не ошибаюсь - с того, когда тебе на вход подают первую информацию о текущем ходе

AntonT: zuko3d: ну да, но это можно было и ранее отследить, они же не сами умирают)

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

AntonT: NightLuna: аа, из-за угла я не подумал, да

Default avatar.png EugeneYakNN: есть вообще достоверный способ узнать что мой пак съел вражеского? типа если мы были в коридоре без поворотов и тот пропал?

Default avatar.png EugeneYakNN: про что вы говорите "статус DEAD"? не приходит же в инпут такое?

NightLuna: в дереве и бронзе не приходит, в серебре добавили

Default avatar.png EugeneYakNN: спасибо, буду иметь в виду

Default avatar.png EugeneYakNN: Я правильно читаю "When the game begins, the map is filled with pellets and the occasional super-pellet" как если не стена или пак, то точно пилюля?

Default avatar.png EugeneYakNN: *как "если не стена или пак, то точно пилюля"?

piter239: http://chat.codingame.com/pastebin/51aa6b33-4509-4c1f-9ca1-7e2844a03f8d

piter239: NightLuna: спасибо, не сообразил сам!

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

DualU: кто в курсе как много памяти занимают словари в питоне?

DualU: тем, кто помнит, как я вчера искал баг: я убрал 2 словаря из программы и все заработало

Uljahn: попробуй sys.getsizeof(your_dict)

BorisZ: зависит от версии и платформы я думаю в районе сотни байт

DualU: довольно много

BorisZ: да ульян дело говорит - проверить проще всего

DualU: пустой словарь весит 248

BorisZ: тут 700 МБ с хвостиком дают, так что вряд ли ты в лимит уперся

DualU: многовато

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

DualU: проверяю...

BorisZ: у меня в голове меньше цифры были - типа 48 что ли

Uljahn: да, изначально на 8 элементов память выделяется, вроде

Uljahn: https://habr.com/ru/post/432996/

DualU: тогда не понятно почему вылетало...

Uljahn: смотря что делал

DualU: блин, опять где-то накосячил и все обратно вернулось, все баги

DualU: афигеть!

DualU: я только что проверил, проходит ли выполнение кода далее, после"бага"

DualU: я специально сделал ошибку, и он программа ее вывела!

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

DualU: это что-то новое...

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

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

BorisZ: тогда если баг будет то понятно где

DualU: BorisZ, сейчас попробую...

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

Uljahn: согласен, сначала распихиваем всё по структурам, а операции изменения выносим в отдельные функции/методы, чтобы локализовать возможные баги

Uljahn: потом только в дебаг остаётся печатать до и после изменения

Hamibar: так и не сделали, чтобы ходы отображались вместо тиков(

Uljahn: угу, продолжаем страдать

Uljahn: хоть бы кнопки добавили для перемотки по кадрам заместо фреймов

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

Hamibar: Да и вообще странно, что не добавили какой нибудь дебаг мод

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

Uljahn: начало хода, в смысле

Uljahn: т.е. фрейм начала синхронизирован с выводом инфы о начале хода

Uljahn: но это ппц как не удобно

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

BorisZ: да, не видно свой дебаг тогда

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

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

Hamibar: Как раз видно) я наверное не так описал. Дебаг выводится, но часть до таймаута на первом тике, а другая часть на втором. Он как-бы разрывается

BorisZ: ну это разовй случай таймаут, не так страшно

BorisZ: можно не заморачиваться

Hamibar: вот же. Только сейчас заметил, что дед и мой код ломает. И кстати можно мертвому паку отдавать приказы :grinning:

BorisZ: некромантия

Hamibar: новые правила для голд лиги.

tutubalin: мёртвого можно оживит большой пилюлей? )

Hamibar: а что звучит интересно

MelnikovIgor: Только нужно дотолкать его до неё

Hamibar: ого куда закинуло)

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

735487: и потом он становится UNDEAD и может сьесть любого включая своих но не может трасформироваться ))

Hamibar: причем undead не собирает палеты, а только гоняется за паками, и если поймал, то тот тоже становится unded

Uljahn: с учётом того, что пакменов съедают, этот undead будет скорее големом из пакменовских какашек

Hamibar: одна идея лучше другой:grinning:

Vitaliy_Kamalin: Попасть в топ 50 вуд1 сменив всего одну строчку в стандартном коде...

MadKnight: какую строчку?

Vitaliy_Kamalin: куда идти )

Vitaliy_Kamalin: много народу сейчас в серебре?

MadKnight: и на какую заменить?)

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

Vitaliy_Kamalin: там цикл по точкам. Я просто взял последнюю и передал в ход, хз

MadKnight: lol

Default avatar.png Mirartes: ребят, что думаете насчет волнового алгоритма?

zuko3d: волновой алгоритм хорош

tutubalin: wlesavo, не в бронзу, в вуд1 только

tutubalin: и до топ50 не добралась.

tutubalin: хотя алгоритм один и тот же

wlesavo: tutubalin эх, я думал в бронзу

Vitaliy_Kamalin: Двигаясь только одним паком сложно переиграть до бронзы )

tutubalin: для бронзы я уже модифицированного Дейкстру пилил

Vitaliy_Kamalin: Не пускает меня пинки в бронзу :\

Default avatar.png ambival: Скажите как использовать ускорение. У меня после ускорения команды пак принимает как и все остальные паки. То есть по факту он не ускоряется

tutubalin: а ты ему в качестве цели какую точку даёшь?

tutubalin: ближайшую или дальнюю?

Default avatar.png ambival: на расстоянии 2х

Hamibar: тогда все должно быть хорошо

tutubalin: кстати, а в один ход нельзя сразу и SPEED и MOVE одному паку?

Hamibar: кинь реплей посмотреть как они ходят

Hamibar: нее, можно только 1 команду

Default avatar.png ambival: а, они отдельным ходом идут получается? тогда ясно. Спасибо

Uljahn: когда хотя бы у одного пака ускорение действует, то ход в плеере делится на два фрейма: сначала на 1 клетку ходят все паки, потом дополнительно на 1 клетку ходят паки со скоростью (или не ходят, если уже пришли к цели)

Uljahn: начало хода - когда строчка "Standard Error Stream:" в самом верху окна дебага, на дополнительном фрейме у меня в верху "Game Summary:"

tutubalin: опа!

tutubalin: просто добавил скорость и я в серебре

Uljahn: круто, надо тоже дейкстру какую запилить

Uljahn: но интереснее, конечно, определить, сколько символов максимум влезет в мессейдж в реплее (17 букв i или 7 цифр)

WhiteCrow: Парни, всем привет

WhiteCrow: Во вводе какие-то баги

WhiteCrow: Бот видит явно больше, чем должен

Default avatar.png Mirartes: SWITCH 1 SCISSORS

Default avatar.png Mirartes: почему не отрабатывает?

WhiteCrow: Не помогло :/

WhiteCrow: Он уже ножницы?

Default avatar.png Mirartes: он бумага

WhiteCrow: Ты успел дать ему команду на перемещение?

Default avatar.png Mirartes: да

WhiteCrow: Надо только одно за ход

wlesavo: WhiteCrow подробней

WhiteCrow: АаааААаАааа

WhiteCrow: ОооООоОооо

WhiteCrow: Вот это баг тысячелетия

wlesavo: ты дедов не видел?)

WhiteCrow: Вот это жесть

WhiteCrow: Видел

WhiteCrow: ВАЛЬКИН ДЕД

wlesavo: так че было

WhiteCrow: Классный сериал

WhiteCrow: Короч у меня тупая бага, ща пофикшу

WhiteCrow: У меня зрение у паков было ограничено во все стороны на 20 клеток

WhiteCrow: Почему-то я думал, что это правильно

ashelkov: да тут можно конкурс тупых багов устраивать

wlesavo: WhiteCrow зачем?

WhiteCrow: Я сам задаю себе этот вопрос

Dmitry_Mandzyuk: а как это ограничено во все стороны? они же только впереди и сзади себя видят

ashelkov: и слева и справа)

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

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

ilgiocatore: у меня ограничение ставится шириной поля

Default avatar.png Mirartes: почему могут лагать кадры?

Uljahn: это как?

wlesavo: я просто заполнение делаю по карте, если встретил заполненную то прекращаю

Default avatar.png Mirartes: стабильно 60 кадров, но на тик мобы останавливаются и стоят просто

Uljahn: это дополнительный фрейм для тех, кто под спидами

Uljahn: ход один, а фреймов два

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

ilgiocatore: вообще-то да, я тупанул, можно убрать ограничение)

Dmitry_Mandzyuk: слева и справа это если стены нет, да и сзади и спереди тоже

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

Uljahn: так в итоге всё равно попадёшь на посещённые позиции, просто их запоминать надо

C2H5OH: та я не запоминаю посещенные.

C2H5OH: https://www.codingame.com/replay/461968099

C2H5OH: чудом просто...

Uljahn: у меня весь бот на одной сортировке :rolling_eyes:

C2H5OH: у меня на волновом алгоритме. одном. без сортироваок.

Default avatar.png Mirartes: а кд на скорость и свитч общий?

ilgiocatore: да

Hamibar: какое-то превосходство обороны над нападением в этой игре. Почти никогда нельзя нападать на соперника.

wlesavo: только тогда когда у противника кулдаун 0

wlesavo: остальное время норм

Dmitry_Mandzyuk: почему это нельзя? можно же, просто не всегда получается)))

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

Dmitry_Mandzyuk: так они ж как черепахи ходят без скорости, если противник на скорости

ilt: так и кулдаун у них 0 в этот момент )

Dmitry_Mandzyuk: ну да, а толку нет)))

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

Hamibar: совсем неочень :grinning::grinning:

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

Dmitry_Mandzyuk: опять же если кд не 0 то толку нет

Hamibar: если он на скорости тоже.

Uljahn: на скорости тоже? но ты не сможешь свичнуться на скорости

Dmitry_Mandzyuk: я думал по простоиу, если враш рядом, то это Danger, надо что-то делать и свитчился круче него

Hamibar: вот именно. То есть если он на скорости, то не можешь атаковать. Если кулдаун не 0 - тоже не можешь. А при равной скорости убежать можно. Если не в тупике конечно

Dmitry_Mandzyuk: то есть надо тупо сваливать?)))

tutubalin: надо предсказывать позицию противника и атаковать из-за угла

Hamibar: Думаю, что свич в основном нужен чтобы какой-то вкусный кусок отжать.

Dmitry_Mandzyuk: еще круче блин))) предсказывальщики)))

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

tutubalin: мои в основном дохнут именно когда из-за угла вылетает противник. мой на скорости даже остановиться не успевает

Hamibar: Dmitry_Mandzyuk ну лучше убежать чем совершать суицид :slight_smile:

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

Hamibar: tutubalin и еще он не разведывает на скорости( может тупо поворот проскочить.

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

Dmitry_Mandzyuk: я в прошлом не участвовал

wlesavo: не идеально, но и не так уж плохо

Dmitry_Mandzyuk: и предсказывать не умею

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

Dmitry_Mandzyuk: воу математика да?

Uljahn: нет, флудфил обычный

wlesavo: не уверен что есть смысл, по крайней мере я не понял как использовать эту информаци.

wlesavo: ю

Uljahn: хотя бы определить суперпелеты

Uljahn: какие ты хаваешь, какие он

Dmitry_Mandzyuk: а ну кстати да, тогда гарантированно хоть пару сожрешь

wlesavo: хм

Dmitry_Mandzyuk: ато просто пытаться их сьесть не всегда выходит

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

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

wlesavo: вот это реально крутая идея

Uljahn: ну да

Uljahn: далее по моменту схавывания можно определить траекторию и id вражеского пака

Uljahn: если он рашит

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

Uljahn: как обычно, накидываем в чат идеи, wlesavo кодит и выходит в топ)

wlesavo: мне по хорошему надо переписать кусочек сначала

wlesavo: но да, это выглядит достойной идеей для реализации

Uljahn: кстати, MSmits говорил вроде, что тут beam search зайти должен

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

Uljahn: а, ну мб

Uljahn: или дезу пустил)

wlesavo: но у него хороший монтекарло, он одновременно для 5 паков симулирует пути

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

wlesavo: у меня в тупую перебираются

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

wlesavo: ато пока совсем рандом

Uljahn: вон ейлер говорит, что догоняшки у него тоже на переборе

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

zuko3d: что такое оос?

wlesavo: предыдущий контест

Uljahn: прошлый контест с подлодками

zuko3d: а

Uljahn: ocean of code

MadKnight: zuko3d ты в него играл?

zuko3d: нет

MadKnight: а чё так?

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

zuko3d: как-то времени не было

MadKnight: ну ты занятой зуко

Dmitry_Mandzyuk: меня вот другой вопрос интересует, как сделать чтобы свои паки не сталкивались? ато встретяться где-нибудь и капец)))

Uljahn: Мэд, а сам-то играл?

MadKnight: ну я-то знаю почему я не играл

MadKnight: а про него не знаю

MadKnight: вот и спрашиваю

dbf: Dmitry_Mandzyuk, вредный совет - если столкнулись - разбегайся в случайные стороны

Uljahn: Dmitry_Mandzyuk: есть пара стратегий - расталкивание и симуляция путей

MadKnight: чё за расталкивание?

Dmitry_Mandzyuk: расталкивание?

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

Uljahn: чем ближе, тем сильнее минус

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

Dmitry_Mandzyuk: все, я кажись окончательно запутался)))

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

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

Uljahn: это как раз второй подход

Dmitry_Mandzyuk: а ну это понятнее

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

Default avatar.png Mirartes: через 5 дней закончится этот эвент? и уже нельзя будет прогать бота?

zuko3d: MadKnight ну дело обычно не только во времени, но и в интересе. Когда на работе были интересные задачи и работы было много - дома хотелось отдыхать. А сейчас вот интересных задач нет и есть свободное время =)

Uljahn: https://recursive.cc/blog/coders-of-the-carribean-post-mortem.html

Uljahn: "Switching to brute force"

Uljahn: Mirartes: он в мульти появится, можно будет играть, но без призов

Uljahn: мульти==мультиплееры (ai bot programming), где почти все прошлые контесты

Default avatar.png Mirartes: Спасибо

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

Default avatar.png Borrow: А ты как тестируешь?

Default avatar.png Borrow: Самописный симулятор и против своего же бота?

WhiteCrow: Ну запускаю несколько раз и смотрю

Default avatar.png Akarachudra: А нет инструмента для прогона без сабмита?

wlesavo: есть

WhiteCrow: Есть вроде, но я воспринимаю это как неспортивное поведение

Default avatar.png Akarachudra: Поделитесь? Где глянуть?

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

wlesavo: CGBenchmark

wlesavo: на гите лежит

WhiteCrow: (какой ты чувствительный мальчик, томми)

Default avatar.png Akarachudra: Спасибо.

wlesavo: https://github.com/s-vivien/CGBenchmark

wlesavo: там инструкция хорошая, даже я смог запустить

Hamibar: спасибо. Тоже надо глянуть

Default avatar.png Akarachudra: Не в этот раз скорее всего, но, конечно, это даёт нереальное преимущество.

Default avatar.png Akarachudra: У одного чела бот отваливает при запуске боя с ним в IDE. Похоже, практика ломать тестирование сопернику имеет место быть. Вот это точно неспортивное поведение.

Hamibar: зато можно точно понять улучшил ты код или нет. А то иногда сложно определить

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

wlesavo: зато таймауты сразу ловит и ссылки на реплеи

wlesavo: Akarachudra наверное ты про дбдра, это проблема с растом

wlesavo: он в иде не запускается

Default avatar.png Akarachudra: Да, про него. Не знал, что это известная проблема

Default avatar.png Akarachudra: Чит какой-то)

Hamibar: Срочно переписываем все на раст

Default avatar.png Akarachudra: Это у них доплата за вредность

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

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

BorisZ: когда в иде выбираешь бота соперника- он же не компилируется снова?

WhiteCrow: Думал же я на расте лабать...

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

wlesavo: хотя я не уверен сам точно

BorisZ: я тоже думал на расте, даже полкнижки прочитал и пару задачек зарешал

BorisZ: но лень стало еще и с незнакомым языком воевать

BorisZ: к следующему контест уж точно

BorisZ: прочитаю еще пару глав и решу еще пару задачек )

NightLuna: цитаты великих просто)

NightLuna: вот к следующему контесту, ух

BorisZ: угу, новогодние обещания

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

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

WhiteCrow: Да не, я от раста оказался потому что он говно

WhiteCrow: Причём даже хуже, чем я думал до этого

WhiteCrow: Даже C# по сравнению с ним божественнен

Hamibar: жалко что нет поддержки брэйнфака)

WhiteCrow: Надо в следующий раз D попробовать

WhiteCrow: Если лень не будет ?:/

BorisZ: я не готов аргументированно спорить )

WhiteCrow: Вот это больше похоже на новогодние обещания :)

WhiteCrow: Хм, я про D

WhiteCrow: Воу, Питон

vrabosh: я смотрю тут много людей активно играет.. как мин 2000

BorisZ: 4005

BorisZ: похоже это рекорд КГ вобще, вроде не было столько никогда

BorisZ: это я про контест, а ты вообще по сайт?

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

BorisZ: я сваливаю в таком случае, не уверен что это правильно

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

BorisZ: не, не свитчится, а убегать

tomatoes: скорость :thinking:

BorisZ: но это у меня просто такая реализация сейчас, - для меня все враги это стены кроме тех которые я съедаю - этих я просто не замечаю )

Hamibar: но ведь тебе зачем-то туда надо. И получается отдаешь все сопернику

Hamibar: А так и ты не получаешь и он

Hamibar: tomatoes а чем поможет скорость?

tomatoes: потом по ситуации. если он может съесть тебя, то убегать; если ты его, то догонять

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

Hamibar: ну да может быть

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

wlesavo: ,jkmyj ckj;yj

wlesavo: больно сложно

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

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

Uljahn: скорость - если недалеко есть более привлекательный кластер пелетов

Hamibar: Uljahn так ты зажмешь то зажмешь, но как убить?

Hamibar: Если кулдауны равные конечно

Uljahn: никак, ждать пока он свичнется

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

Uljahn: но так тупо, жа

Uljahn: да

BorisZ: если не запредельной сложности комбинация конечно )

Hamibar: не просто интересно может быть есть победная стратегия, которую мы не знаем

Uljahn: я вообще теоретик и у меня лапки)

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

Default avatar.png Akarachudra: мне кажется, проблема в том, что свитч нужно было сделать как SWITCH MOVE. вот тогда была бы жара. Камень-ножницы-бумага - как задумывали авторы. А так - лучше, конечно, сходить и посмотреть, что предпримет соперник.

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

tomatoes: когда зажат например, то можно рискнуть наверное

Hamibar: Akarachudra тогда конечно еще больший рандом бы был. Но весело.

BorisZ: Hamibar а ты имеешь ввиду долбиться именно из-за угла, когда не видишь врага, или когда видишь или и то и другое?

Hamibar: да в обоих случаях интересно. Но я не могу отличий найти)

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

BorisZ: когда видишь то знаешь кулдаун

BorisZ: если ты первый то долбиться, если второй то убегать

MadKnight: а я вижу через этот портал на другую сторону карты?

Default avatar.png Akarachudra: Видишь.

MadKnight: норм

Hamibar: Просто не знаю влияют ли кулдауны на эту ситуацию

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

Default avatar.png Akarachudra: Забавная концовка: https://www.codingame.com/share-replay/462080258

Hamibar: Да вроде нет. Свичнишься он пройет и не догонишь.

Hamibar: Заюзашь скорость не убьешь

Hamibar: хах. Как раз подходит к обсуждению в чатике

BorisZ: да, прям бальзам на душу, и у топоф фигня случается, есть надежда )

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

Default avatar.png Akarachudra: ни при расчетё весов, ни эвристикой

Hamibar: такое ощущение что кто первый предпримет действие проиграет

Default avatar.png Akarachudra: не, если бы он напал бумажным, я бы свитчнулся в ножницы, и он бы забрал пилюлю

Hamibar: ну да. Что-то сложно.

Default avatar.png Akarachudra: наши боты расценивают этот мув как минусовый, поэтому так не делают, если дать ему оценку как плюсовый, то будешь проигрывать большинство других игр по очкам.

wlesavo: Akarachudra ну только другим паком помочь

Hamibar: кстати да. Ведь точно знаешь, что только 1 палетка осталась и она там

Hamibar: По счету

MadKnight: мои pacs всегда первыми идут?

Hamibar: одновременно ходят паки

MadKnight: ну всм в инпутах

MadKnight: в cin

Hamibar: а хз. Там же есть флаг

MadKnight: это я знаю

735487: пиши cerr << и проверь )))

MadKnight: Standard Error Stream: 0 1 0 0 1 1

Hamibar: у меня поочередно

MadKnight: не, не всегда

MadKnight: seed=8547593280605176800

MadKnight: на этом проверь

AntonT: нулевой игрок первый, идут веремешку

AntonT: вперемешку*

Hamibar: ну у меня в порядке возрастания айдишников поочередно

AntonT: по крайней мере инпуты двух ботов одинаковые

AntonT: хотя, не одинаковые) своих-то всех видно, а противника не всех)

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

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

BorisZ: ну и вообще у паков глаза со всех сторон, нет вперед-назад тут

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

BorisZ: ну надеюсь что ты так троллишь)

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

BorisZ: если пак стоит на этом проходе - он увидит все точки и всех врагов на нем и все - это придет в инпуте

gybson_samara: я такую встречал

gybson_samara: и одна из версий у меня уходила в ТА на инпутах, даже не начав обсчет движения

AntonT: да, у меня тоже такое было) я итерировался "до стенки", а стенки не было))

BorisZ: ну это как написать, у меня когда линию считает то только на расстояние ширины карты идет

BorisZ: а сид не сохранился у кого?

BorisZ: вот правда не встречалось ни разу

C2H5OH: https://www.codingame.com/replay/462130073

gybson_samara: иногда замечаю за собой гениальные строки if best == None : return None

Hamibar: я исправил этот баг до того, как написал его

AntonT: seed=-4083541552256915502 вот, например

BorisZ: C2H5OH круто, спасибо, сейчас проверю тоже

BorisZ: у меня ок, еще и у топ 1 выиграл ) https://www.codingame.com/replay/462131875


BorisZ: но он конечно меня перекапывает, если бы не убийство из-за угла

Xanrum: у некоторых явно тупит и смотрит до края карты и не смотрит за край

Hamibar: сейчас ромка первый)

gybson_samara: 150-65 против босса в бронзе, походу сабмит должен хороший быть

gybson_samara: сабмит и ТА, ТА, ТА, ТА =) ну да, ну да, поешл я нахер =)

MadKnight: заюзал свой первый goto

MadKnight: на проверке коллизий

ilgiocatore: воу

MadKnight: achievement unlocked, Automaton2000

Automaton2000: а еще я в 95% случаев пропускаю удар под перекладину с средних/дальних расстояний

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

Hamibar: вот как понять мне повезло или действительно улучшил код :disappointed:

dbf: отправь еще раз :)

Hamibar: кстати можно

Hamibar: прикольно у топ 1 честенько таймаутит

gybson_samara: на 5 паках небось

Hamibar: а я и не посмотрел. Тем более на 5 паках у меня код у самого рандомный немного)

Default avatar.png Mirartes: Ребята, на какую дистанцию выставлен волновой алгоритм? я не успеваю вовремя отправить строку(

gybson_samara: 5 мс вроде

Default avatar.png Mirartes: фак(

gybson_samara: да, это большая проблема

Default avatar.png Mirartes: я волновым алгоритмом опрашиваю могу ли дойти до точки, но вся херня в этих мс

gybson_samara: напиши в поддержку, может увеличат

Hamibar: 50мс дают

gybson_samara: оу!

Default avatar.png Mirartes: малооо) для 4х ботов пройтись волновым

zuko3d: не мало

Default avatar.png Mirartes: ты каким алгоритмом узнаешь можешь ли ты дойти до точки?

zuko3d: bfs

gybson_samara: у меня 5 ботов на 5-6 клеток пути видят вроде

zuko3d: ты на чём пишешь?

Default avatar.png Akarachudra: 50мс хватит всем©

Default avatar.png Mirartes: шарп

gybson_samara: я просто рекурсией получаю все пути из точки на длину 5-6 ходов

zuko3d: ой

zuko3d: это не похоже на волновой.

gybson_samara: это от 16000 вариантов =)

zuko3d: напиши обычный bfs, он пишется за полчаса

Default avatar.png Mirartes: я прохожусь в 4 стороны от точки

Default avatar.png Mirartes: проблема только с этим алгоритмом, бота я научил уже юзать абилки и убивать других

gybson_samara: не надо в 4, надо в свободные

ashelkov: а есть тут кто на js/typescript? тот еще челлендж/ даже пока бфс не прикручивал

Default avatar.png Mirartes: ну в свободные там проверка на -1

gybson_samara: ну вот получишь N путей? gjnjv lkz rf;ljuj gjcxbnftim wtye

gybson_samara: потом для каждого посчитаешь цену

Default avatar.png Mirartes: бфс в качестве начальной вершины берете позицию пакмана?

Default avatar.png Mirartes: ну я так и сделал но это долго, строку не успевает отправить

Hamibar: волновой же за O(n) работает?

gybson_samara: волновой метод это заливка чтоль?

gybson_samara: def give_a_way(self, x, y, count): http://chat.codingame.com/pastebin/8abce148-4ec0-4095-9ef4-ac161b6c99b6

zuko3d: да, и работает за O(n)

Hamibar: ну тогда точно должен успевать. Попробуй баг поискать

Default avatar.png Mirartes: а А* никто не пробовал?

zuko3d: а зачем?

gybson_samara: я пока нет, я пока 3 алгоритма запилил =)

Default avatar.png Mirartes: побыстрее должен быть

Hamibar: да тут какой хочешь такой и используй.

zuko3d: он не будет быстрее тут, чем bfs

gybson_samara: просто симуляция, ГА и поиск пути рекурсией (в душе не знаю как называется)

gybson_samara: рекурсия пока рулит

Default avatar.png Mirartes: ну у меня так же рекурсией от точки в которой я нахожусь

Default avatar.png Mirartes: я передаю ей на вход сетку со стенами, позицию x y и текущий d

gybson_samara: глубина рекурсии какая?

Default avatar.png Mirartes: 5

gybson_samara: не передавай на вход ничего, кроме новых координат

gybson_samara: и id

gybson_samara: сетку 16000 раз передать, да ты так все сервера положишь

Default avatar.png Mirartes: предлагаешь работать со статик масивом?

Default avatar.png Mirartes: там меньше 16000))

Default avatar.png Mirartes: намного

zuko3d: откуда 16к? Тут же в поле всего пара сотен клеток

Hamibar: разве в шарпах не по ссылкаи передача?

zuko3d: по ссылке

Default avatar.png Mirartes: по ссылке

Hamibar: тогда почему бы и не передавать)

Default avatar.png Mirartes: ну вот я передаю по ссылке

Default avatar.png Mirartes: после чего назначаю текущему квадрату значение d(значение текущего шага)

Default avatar.png Mirartes: дальше следует проверка

Default avatar.png Mirartes: if(y-1>=0 && grid[y-1,x]!=d+1 && grid[y-1,x] == 0 && grid[y-1,x] != -1){

Default avatar.png Mirartes: и аналогичные для всех сторон

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

zuko3d: посмотри на википедии BFS, с использованием очереди

Default avatar.png Mirartes: сейчас о нем и читаю

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

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

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

dbf: vrabosh ты для какой платформы пилишь чатботов?

zuko3d: ну.... это ж разное. тут не надо юнит-тесты писать, расзворачивать инфраструктуру и т.п.

vrabosh: я под вк подсел уже как 10лет

vrabosh: игры, приложение, теперь чатботов

vrabosh: игровой

vrabosh: непишу я юнит тесты) и инфра структура это вдс купил да залил)

dbf: ууу, что ж так, без тестов

dbf: а если бот не у того деньги спишет? :)

vrabosh: игроки протестят)

dbf: в booking.com вроде похожий подход :)

vrabosh: это простые алгоритмы.. там нет замудренности.. ошибится сложно

Hamibar: https://www.codingame.com/share-replay/462149028 200 ходов бились лбами в центре) тут даже другими паками не помочь.

Xanrum: тип на первом месте по таймауту падает - как он занял первое место?

Hamibar: это тактический таймаут

zuko3d: кун фу от Rust.

gybson_samara: про 16к, в самом общем случае у вас 4 варианта начала пути

gybson_samara: из которого идут еще 4

Default avatar.png S0L0: как тут ходы считаются у абилки на скорость непонятно, обнулился счётчик а активировать не даёт. И вообще глючит игра когда абилка включена, то ходят 2 шага, то 1 при включеной.

gybson_samara: кроме счетчика скорости есть общий КД на абилки

Hamibar: 1 ход может длится 2 кадра, если у кого-то скорость.

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

Default avatar.png S0L0: то есть сразу после активации скорости нельзя переключить тип ?

gybson_samara: нет

Default avatar.png S0L0: с этим разобрался, а почему они при включеной скорости шагают на разное расстояние ? то 2 то 1

gybson_samara: 1 - команда была на один шаг, 2 - вторая команда в стену

ashelkov: SOLO первый тик ходят все паки / второй те у кого есть скорость

Default avatar.png Akarachudra: Вроде Rust игроки могут в IDE прогонять игры. А вот против них нельзя.

ashelkov: может ты еще таргет ставишь длинной в 1 при скорости / тогда он и двигается до таргета

Default avatar.png S0L0: да бывает и 1 , если супер хавка в 1 то зачем буду дальше ? там и путь не просчитан дальше

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

zuko3d: если ты отдаёшь команду пойти на одну клетку и пак идёт на одну клетку - в чём глюк?

Hamibar: не глюк . Он по кратчайшему пути к таргету. Если таргет на дистанции 2 - то он пройдет 2 клетки, если 1- то 1 клетку, если 0 - 0 клеток

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

vrabosh: да и где враги изнаально и кто стоит

vrabosh: завтра надо будет код подчистить и часть в функции красивые запихнуть

Default avatar.png Mirartes: как вы лечили втыкание лицами?

Default avatar.png S0L0: https://www.codingame.com/replay/462265893 вот как смотрится когда абилка включена а толку нет , думал её просто включил и всё , а тут придётся весь поиск путей переделывать

Hamibar: у меня до сих пор никакого трекера нет.

Hamibar: Включил абилку и паки сами пусть решают.

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

Hamibar: Mirartes со своими?

zuko3d: а, я про врагов

vrabosh: оо какаято хрень появилась. DEAD и я занее подвис

Default avatar.png Mirartes: со своими

Default avatar.png ambival: что надо сделать, чтобы попасть в серебро?

zuko3d: победить босса бронзы

Hamibar: Купить премиум аккаунт

Uljahn: пофиксить баги

zuko3d: прям соревнование в остроумии :D

gybson_samara: бухнуть

Uljahn: это для леги

Default avatar.png ambival: а босс - это solo? или как найти его, чтобы потренироваться?

gybson_samara: это соло

Default avatar.png ambival: ник s0l0? то есть с нулями?

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

Default avatar.png S0L0: мне до босса как до луны

Uljahn: в IDE можешь потренироваться против босса или другого игрока

Default avatar.png ambival: ну я выиграл в ide босса

Uljahn: сабмить

Default avatar.png ambival: но в серебро не попал

Uljahn: жаль, твоё место в бронзе, значит

gybson_samara: я предлагаю выиграть босса раз 10

gybson_samara: потом сабмитить

Uljahn: так надо ещё выигрывать у тех, кто рядом с боссом

gybson_samara: на разных картах, конечно

Default avatar.png ambival: попробую

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

Uljahn: может быть ситуация камень-ножницы-бумага

gybson_samara: 10-20 боссов примерно дают релевантную выборку

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

gybson_samara: так-то да

gybson_samara: но 20 боссов если завалил, то скорее всего прошел

Uljahn: согласен

gybson_samara: одного - нет

gybson_samara: и даже 5 мало

Uljahn: и на разных картах обязательно

Uljahn: ещё можешь посмотреть в last battles свои проигрыши, и пофиксить их

Default avatar.png ambival: ну соло же на 997м месте в бронзовой лиге

Default avatar.png ambival: как он может быть топом?

Uljahn: при чём тут соло??

Default avatar.png ambival: я так понял, что босс - это соло. Его надо побеждать

Uljahn: :confused:

Default avatar.png S0L0: :)

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

Default avatar.png ambival: ааа

zuko3d: иногда я не понимаю, троллят люди или просто новички =)

Default avatar.png ambival: сорри я затупил

Uljahn: да новички конечно

Uljahn: так троллить только кубер мог

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

gybson_samara: ласт баттл конечно да, с боссом 80 игр устанешь играть

gybson_samara: и там самые обидные баги находятся

vrabosh: чел на 1 месте, а у него таймауты выкидывает.. как так?

Uljahn: это не таймауты

Hamibar: это чудеса раста

vrabosh: что за раста?

Uljahn: rust

Uljahn: против него нельзя пока в ide создать игру

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

Uljahn: насколько я понял

gybson_samara: нарядно

gybson_samara: завтра к вам в серебро залезу

gybson_samara: ... так вы в золото уже убежите

NightLuna: а на шарпе тоже так можно, забавно

Default avatar.png Akarachudra: NightLuna что на шарпе можно?

Default avatar.png Akarachudra: DEBUG директиву воткнуть?

NightLuna: да

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

Uljahn: по-моему, только раст нельзя релизный в ide запустить, но наверное пофиксят

Uljahn: а, нашёл в дискорде

Uljahn: там проверка на режим что ли?

Default avatar.png Akarachudra: Ну это бред, этим можно злоупотреблять прям по-жесткому. Неспортивно мягко говоря

Uljahn: "Rust is the new OP language. if (DEBUG) crash();"

Uljahn: кстати, кто тут cg-бенчмарк запустил? против раста можно же бенчить?

Uljahn: хотя, там берётся id бота с арены и игры создаются через api...

Uljahn: злоупотребление - это когда бота прячут до последней минуты :)

Uljahn: а тут можно игры хотя бы посмотреть

NightLuna: ну раньше прятали ботов, пушили на 10 минут и убирали

Default avatar.png Akarachudra: Ну сейчас что хорошего? Я могу в два клика сделать сборщик себе так, чтобы он пушил с дебаг предпроцессором, а мне в IDE отправлял без него.

Default avatar.png Akarachudra: Но это как-то совсем не очень.

Default avatar.png Akarachudra: Это, если что, вопрос не тебе) а риторическое высказывание недовольства.

Ivan_Legion: а пак через палетки других паков не видит что ли?

NightLuna: Я не поддерживаю такой подход, потому что это капец читерство. Но я не знаю, как бороться с этим.

Uljahn: ждать, когда пофиксят

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

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

Ivan_Legion: понял свою ошбку, да все видно. Я просто инициализировал список пакменов 1 раз и не заполнял если замечал новых

Uljahn: классика

Ivan_Legion: сижу пол часа туплю почему в дебаге видно не всех врагов)

Uljahn: набивать такие шишки полезно

Ivan_Legion: я вообще код пасфайдинга от своей игры заюзал

Ivan_Legion: так что он оброс уже всякими полезными функциями

Ivan_Legion: и контест и игру свою улучшил)

wlesavo: нафиксил багов и чето сломал похоже, эх

Ivan_Legion: я вчера так понял что в коде не так и с 500го места на 1300 отлетел)

Ivan_Legion: видимо полезные баги были)

Hamibar: просто ты создал новые баги, чтобы исправить старые

Xanrum: отключил сборщик мусора, поднялся до 15 места О_О

Hamibar: больше пербрать смог?

Hamibar: или как это влияет?

Xanrum: я перебираю по лимиту времени. ВИдимо в некоторые тики вклинивался сборщик что недовал доперебрать

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

Hamibar: хех. Всегда так. пишешь 1 строчку и получаешь больше чем от целого дня работы

Xanrum: ну.. день работы поднял с 80 до 30. Завтра на работе будут отчитывать что за день ничего не сделал : (

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

Default avatar.png S0L0: да

Xanrum: команда на одну клетку была паку дана

Hamibar: я про то что часто есть простые решения)

Ivan_Legion: ты послал ему идти на 1 клетку вместо 2х

Default avatar.png S0L0: цель ставишь на 1 клетку

Dmitry_Mandzyuk: а вот оно что,я понял спасибо)

Xanrum: чтото питоноводов нет в топе

Hamibar: сейчас wlesavo баги поправит и ворвется

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

Xanrum: дошел до 16 и до сих пор не смотрю на тип паков противника и своих. Просто убегаю от всех. Кто как смотрит на тип паков?

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

Default avatar.png Mirartes: и если есть в радиусе 2ух клеток заменяет комманду мува на смену типа

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

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

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

Hamibar: ну и когда он вплотную могу свичнутся

Xanrum: у меня идея в том что там где вражеский пак - уже все съедено - зачем через них строить путь?

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

wlesavo: у euler'a классный учет, брутфорсом проверяет килы

Hamibar: хотя я конечно мог коряво реализовать

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

Hamibar: вроде просто, но я как-то и не подумал об этом

Xanrum: осталось понять как это использовать - вот как?

Hamibar: ну трекер кажется вещь достаточно полезная

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

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

Xanrum: как не понимает? мои паки им пользуются

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

Xanrum: это смотря как сделаешь алгоритм - я справа и слева подрисовал копию карты

Dmitry_Mandzyuk: ну ты хитрец))) и что они у тебя в минуса по x ходят?

YurkovAS: wlesavo известно еще про брутфорс? как он это делает, минимаксит только 2х ближайших (своего и врага) и на какую глубину?

Default avatar.png S0L0: замкнул карту в цилиндр и всё

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

Xanrum: садисты, паков запираете

WhiteCrow: Парни, как работает бфс в рефери?

WhiteCrow: Какая-то хрень творится

Xanrum: что такое рефери?

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

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

WhiteCrow: ashelkov м,

WhiteCrow: М?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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