Chat:Ru/2020-03-23
Uljahn: the turn limit will be increased to 600
mykeich: что тут происходит?
Uljahn: контест новый, антикоронавирусный
Uljahn: наспех соорудили, чтобы всем, кто в карантине, было чем заняться в ожидании главного контеста
mykeich: на си заготовка кривовата, fgetc(stdin); нехватает
tutubalin: BorisZ "каждый сайленс дает кучу вариантов"
они пересекаются, реально их не может быть больше 225
tutubalin: ну и не забывай, что при сайленсе можно идти только прямо
Uljahn: 13 разных клеток максимум?
Uljahn: похоже, CG так и не работает в устаревших браузерах, с работы не смогу теперь заходить :(
Uljahn: Automaton2000: придётся менять работу
Automaton2000: а то я не вижу в лидерборде
Hamibar: с помощью мин можно кстати улучшать определение позиции соперника.
Hamibar: Такой взорвал если не уверен и смотришь, жизнь не отнялась - значит можно отбросить несколько вариантов.
tutubalin: Uljahn "13 разных клеток максимум?" из каждой возможной клетки.
BorisZ: после всплытия 17
735487: Uljahn: в конце матча можно на месте не сильно то постоишь. плыть куда то надо все равно
BorisZ: пора переписывать все короче)
BorisZ: а можно в один ход move а потом silence?
BorisZ: по пописанию судя - можно
BorisZ: But you can use each type of action only once per turn (you can move one time per turn, no more).
BorisZ: пробовал кто-нибудь?
735487: пробовал. можно
BorisZ: тема
Hamibar: можно вроде как даже набрать сало при муве, а потом сало и использовать. Но это не точно
735487: точно :)
735487: у меня так со стрельбой делает
wlesavo: ну у меня тоже, если достаточно траекторий проходит через квадрат то стреляю
735487: wlesavo: имхо это у тебя слабость у бота. мой твоего вычисляет очень быстро
Abrik: Решаю задачу с космическими кораблями.
Abrik: Они летят быстрее чем я "стреляю". Даже если выбирать ближайший корабл с учетом скорости
735487: ссылку дай
Abrik: https://www.codingame.com/ide/puzzle/onboarding
735487: они летят быстро но там все можно успеть
735487: достаточно расстояния сравнивать
Abrik: http://chat.codingame.com/pastebin/deaa1ea6-9bec-49be-b074-21d58c22a9aa
Abrik: получается Sectoid Но Buzz все равно долетит
wlesavo: amurushkin так это деревянный бот
wlesavo: бронзу я не начинал еще
735487: ты точно ту ссылку дал?
Abrik: это первые уроки которые у меня отобразились после регистрации
735487: там дают только 2 параметра. имя бота и его расстояние
Abrik: да, остальное я сам по статистике собираю
Abrik: скорость считается если еще она не известна
735487: там задача решается в одну строчку
735487: ничего считать не надо
Abrik: и с учетом скорости считается в кого выстрелить
Abrik: хм. Можно эту строчку для понимания?
wlesavo: if dist_1 < dist_2:
print(enemy_1) else: print(enemy_2)
wlesavo: да
wlesavo: нажми play testcase
wlesavo: может ты смотришь превью
Abrik: я нажимал но меня гасят
Uljahn: уря, нашёл хромоподобный браузер под XP
735487: покажи свой код. у нас работает
Abrik: Странно, так работает. А я уже и классы и статистику и т.д.
Uljahn: типикал оверинжиниринг
MadKnight: Abrik давай сразу в гоночки
MadKnight: https://www.codingame.com/ide/puzzle/coders-strike-back
Abrik: о я вчера нечто подобное решал с тором и молнией
MadKnight: только тут мультиплеер
MadKnight: PvP
Abrik: а чем суть мультиплеера?
Abrik: у кого код оптимальнее?
MadKnight: кто быстрее проедет чекпоинты
Abrik: Хорошо. Как нибудь попозже. Наберусь немного опыта и поиграем)
MadKnight: да зачем тебе ещё опыт? это простая игра
MadKnight: она не сложнее того что ты наделал в корабликах
735487: нашел охеренный баг у себя с сайленсом. я отсекаю наоборот тут сторону куда он может пойти и смотрю ту куда не может
Uljahn: Game is updated now
735487: а ченжлоги есть?
735487: фу блин нахера стали писать lost a life. мне было удобнее когда команды были
Uljahn: мдеее
MadKnight: Abrik
735487: бля как же неудобно стало. мне было важнее знать когда я выстрелил а не то что кто то хп потерял
MadKnight: пожалуйся в #world
MadKnight: вон там как раз illedan сидит
wlesavo: amurushkin всмысле, что поменялось?
wlesavo: информация о жизнях же была изначально
wlesavo: а, вы про тултипы
Uljahn: теперь надо ПАРСИТЬ реплеи, чтобы понять, что происходит, а раньше можно было скроллить по таймлайну
wlesavo: ну это не проблема поправить если людям удобнее
MadKnight: magus говорит это было ошибкой делать так, чтобы игрок мог случайно самоубиться
MadKnight: в таких играх можно выйти в топ, просто ничего не делая
MadKnight: так было в PCR и в HS
MadKnight: amurushkin у тебя кривой инглиш
Uljahn: пропаганда суицида на цисгендерной субмарине, Automaton2000
735487: что значит случайно? нужно осознанные ходы делать
MadKnight: я тебя не понимаю на инглише
Automaton2000: о я вчера нечто подобное решал с тором и молнией
MadKnight: amurushkin ну прям как было в HS, когда ставишь бомбу, а потом не можешь уйти от взрыва
Uljahn: ещё в utg можно было камикадзить
MadKnight: Illedan 12:43PM We nerfed the boss a little
735487: MadKnight: amurushkin у тебя кривой инглиш я рад что у тебя лучше
MadKnight: amurushkin я к тому что тебя сложно понять, а не к тому что у меня лучше
735487: другие же понимают. мне более важно чтобы иностранцы понимали а не ты
735487: мне мой инглиш не мешает работать с иностранцами. еще никто не жаловался что меня не понимает
BorisZ: илеган верно говорит - смотришь на заряды свои и сразу видно что выстрелил
MadKnight: ну из контекста можно догадаться
Uljahn: BorisZ: заряды могут и просто так потратиться, если стрельнул за пределы рейнжа
735487: BorisZ: для этого надо реплей мотать а так было сразу видно на таймлайне и можно было туда перейти
BorisZ: согласен со всеми ораторами
735487: я понимаю что они убрали это потому что ходов стало больше и тупо все действия не помещаются теперь
Uljahn: я предложил в тултип добавлять причину дамага, но меня видимо не поняли :)
735487: почему именно 636 ходов не понятно
Uljahn: слишком идеальный инглиш)
BorisZ: ну в чат то писать всегда рискуешь что не заметят - пиши на форум лучше
Uljahn: да я шучу, мне и так норм
MadKnight: Uljahn так может тебе просто не ответили
MadKnight: но поняли
Uljahn: мб
MadKnight: и ответили типа thanks guys
735487: Uljahn: я тебя там поддержал
Uljahn: спс, но скорее всего заметили уже
Uljahn: а может я в игноре у них как кубер)
Abrik: можно в пару словах о чем речь сейчас в чате?
Uljahn: про контест, который сейчас идёт
Uljahn: онлайн соревнование на месяц
Uljahn: https://www.codingame.com/contests/ocean-of-code
Uljahn: вот этот
Uljahn: если есть вопросы по пазлам, или что ты там решаешь - можешь задавать тоже
Abrik: Хорошо. Нажал Following
MadKnight: Abrik поиграл в гоночки?)
Abrik: http://chat.codingame.com/pastebin/a9c5c4cb-869a-4107-a32e-9e0d06ad1b9b
Uljahn: ринга нет там, поле без границ, просто улетаешь за видимую область
735487: все Uljahn пришла пора сабмитить нового бота. мой твоего сейчас скинет
Uljahn: ну и есть формула для дрифта, только надо вектор скорости сначала определить
Uljahn: amurushkin: го го
Abrik: ну вот. Говорю же рано еще мне)
735487: Abrik: тебя пугает слово вектор?
Uljahn: в настройках плеера (шестерёнка), включи debug режим, там много интересного покажут
Abrik: нет. не пугает. но сейчас заниматься этим не будут. Т.к. на работе
MadKnight: Abrik там есть tutorial уровни, которые можно пройти за 5 минут
735487: о норм меня подкинуло
Uljahn: gratz
mykeich: какой сложный ocean, из вуда 2 не понятно как выбраться, никаких данных о сопернике же нету
735487: данные то как раз есть. какие действия он делает
735487: по ним можно вычислить где он находится
mykeich: это где? opponent_orders=NA постоянно
735487: не может такого быть :)
Uljahn: только в первый ход если ты красный
mykeich: я очепятался
MadKnight: мне тут подкинули топ стратегию
[lazy]Opera: топ стратегия: постоянно копить сайленс и таким образом быть скрытным ниндзя
735487: я у себя ограничил сайленс и стал чаще юзать сонар и поднялся на 20+ мест
735487: и у меня нет мин вообще. ни своих ни чужие не пытаюсь угадывать
[lazy]Opera: а при равном счёте кто побеждает?
735487: по хорошему еще надо умно выбирать стартовую точку
735487: при равном счете побеждает тот кто ходит 2
735487: хотя могу и ошибаться. может и тот кто 1
[lazy]Opera: почему этого нет в Victory/Lose Conditions?
Uljahn: можно в рефери посмотреть
tutubalin: а вот как сонар работает?
tutubalin: он проверяет сектор в тот момент, когда делаешь action, или на момент конца хода противника?
input.txt: до хода противника
input.txt: так же как торпеды
Uljahn: в правилах это есть
Uljahn: This is in respect to the time of issuing the command, not after the opponent moved.
tutubalin: а, точно
Hamibar: Получается если я хожу вторым и ударил торпедой в то место, где был оппонент на начало хода, то у него 2 очка отнимется?
Uljahn: торпеда детонирует в тот же ход
tutubalin: да. но это надо удачку прокачать при создании перса )
Uljahn: или дедукцию
tutubalin: типа собрать статистику, куда в основном в начале ставят и туда бить?
Uljahn: не, я про анализ пердыдущих ходов
Uljahn: *предыдущих
Hamibar: Нее, про другое. Начинается ход. Я получаю данные о передвижении. Потом противник мувается, а я стреляю в то место где он был в начале хода, до своего мува.
Hamibar: 2 очка отнимется или 1
Uljahn: ненене
Uljahn: ты получаешь данные и стреляешь, торпеда детонирует, противник получает дамаг, ход заканчивается, ходит противник
Hamibar: ааа я понял. Спасибо. Думал данные приходят каждый ход. А они только на твой.
Uljahn: да, тут поочерёдные ходы
[lazy]Opera: плин, не успел сонар и силенс доделать, а меня в бронзу апнули...
mykeich: а торпеды только горизонтально и вертикально запускать можно?
Hamibar: нет
Hamibar: на расстоянии 4 клеток
mykeich: манхетовское?
Hamibar: ага. Только препятствий не должно быть.
Hamibar: могу ошибаться. лучше протестировать конечно)
wlesavo: там же картинка в описании есть
Hamibar: ооо точно. Вроде раньше не было
wlesavo: да, сегодня добавили
Hamibar: Еще длину игры увеличили, да?
wlesavo: о, как раз уведомление об апдейте
Hamibar: SILENCE N 0 дал мне прибавку в 60 мест)
wlesavo: надо сегодня сонары и сайленс прикрутить, ато стыдно с вуд босом в бронзе
735487: у меня сайленс довольно тупенький. и даже идей нет как его юзать более эффективно
735487: а вот сонар походу классная вещь. у меня довольно простое его использование но кажется что эффективное
Hamibar: ну да за 4 хода отбросить хотя бы 1/9 всех ходов - звучит неплохо
735487: а в реальности там даже больше отсекает
735487: особенно если угадаешь
735487: хотя в некоторых случаях бывает и наоборот.
Hamibar: ну меньше чем 1/9 не отсечь)
Uljahn: они же не равномерно по секторам
Uljahn: особенно, если история уже длинная
Hamibar: ну ты же скорее всего кинешь сонар туда, где больше всего вариантов
Uljahn: значит и отсечёшь больше, чем 1/9
Uljahn: блин, "меньше чем" не так прочитал)
wlesavo: можешь вообще ничего не отсечь, а можешь вообще все кроме одного, тут не факт что стоит в самый населенный сектор кидать
wlesavo: от ситуации зависит короче
735487: если секторов только 2 то без разницы куда
wlesavo: ну да
Uljahn: опять энтропию уменьшать, прямо как в быках и коровах
[lazy]Opera: можно перебрать 9 секторов
Uljahn: надо ещё доплыть, а противник тоже не стоит на месте
tutubalin: я математически доказал, что стоит кидать в самый населённый
tutubalin: а также нашёл условие "а стоит ли вообще кидать", но это пока ноухау )
Uljahn: неплохо
wlesavo: нашел баг в накидке сайленса, изза этого иногда 0 кандидатов оставалось
Hamibar: хм, я тут подумал, стоит ли хранить все возможные траектории врага, или их будет слишком много?
wlesavo: конечно стоит
wlesavo: а как ты до этого определял врага
Hamibar: просто возможные конечные точки
wlesavo: ну траектория нужна чтобы лучше фильтрация была
Hamibar: про это и думаю)
Uljahn: почему не хранить последнюю валидную траекторию и возможные конечные точки?
Uljahn: вообще, историю-то можно полностью хранить и бэктрэкать по необходимости
wlesavo: я просто храню свой грид для каждого
Uljahn: не жирно?
Uljahn: я рисую траекторию и нахожу совпадения с помощью rolling window
wlesavo: мне кажется хранить грид эффективнее даже, хотя не знаю, могу ошибаться, в любом случае кандидатов большую часть времени не больше 10
735487: меня с траекториями смущают сайленсы. хотя я еще не пробовал их хранить
wlesavo: как раз фильтрация сайленсов эффективная получается, ты добавлешь сильно меньше кандидатов тогда
Uljahn: это если просимулировать только возможные сайленсы?
wlesavo: ну эффективно это одно и то же, вопрос в том что быстрее, но пока он не особо стоит
Uljahn: ну правильно, там же ещё суша помогает фильтровать
735487: проблема в том что с сайленсами тогда у тебя будет множество путей приводящих в 1 точку
wlesavo: но эффективно они разные, потому что из них ты можешь идти в разные стороны
wlesavo: а офильтруешь ты их все равно одновременно
Uljahn: не понял про одну точку
wlesavo: Uljahn если два раза использовать сайленс, то потенциально могут возникнуть разные кандидаты с одинаковыми координатами
Uljahn: но там же 6 ходов заряжать надо
wlesavo: но за 6 ходов ты уже отфильтруешь почти все, да\
Uljahn: ну да, так далеко я не рассматривал
wlesavo: короче это незначительная вещь ообще
wlesavo: ща прикручу сонары вместо торпед и можно будет думать уже, ато хорошо рассуждать на дне бронзы)
735487: сонары прямо вместо торпед?
wlesavo: ну я в вуде торпедами исследовал
wlesavo: теперь надо сонарами
wlesavo: не то чтобы вообще отказаться от них
Uljahn: торпедами ахах, активное зондирование
Uljahn: и себя при это палишь
Uljahn: *при этом
wlesavo: не, у меня было условие чтобы в себя не палить
735487: я стреляю только когда целей 4 и меньше
wlesavo: ну я делал маску координат для стрельбы и если в ней находились кандидаты проверял выстрелом
wlesavo: ну сейчас да, тоже сделал границу
Uljahn: да я про то, что позицию свою выдаёшь)
wlesavo: а, в этом смысле, да
Uljahn: в этом плане сонар получше будет
wlesavo: ну для вуда это нормально
Uljahn: todo list уже длиннее бота :(
735487: как круто определять стартовую точку?
Uljahn: я про свой вариант два раза рассказывал
Uljahn: возможно, именно из-за него так высоко забрался с таким тупым ботом
735487: я если честно так и не понял твой вариант.
735487: у тебя там что волная идет от краев и от островов? по сути потенциальные поля
735487: почему эти точки лучшие я вот это не понимаю
Uljahn: траектория фильтруется, когда с двух или трёх сторон зажата сушей или границами
Uljahn: а тут ты отодвигаешь этот момент, пытаешься найти точку, где больше пространства для манёвра
Uljahn: ну и дальнейшее построение траектории должно учитывать это
Uljahn: если прижался к суше, то с противоположной стороны нельзя прижиматься, а то траектория сколлапсирует
Uljahn: лучше вообще не прижиматься, для этого я ищу равноудалённые точки
735487: у меня выбирает по оценке расстояния к центру и подальше от островов. тоже всегда в центре начинает
Uljahn: а, ну ок тогда
735487: правда у меня учитывает радиус в 8 клеток а не все острова
Uljahn: просто оказалось, что такие карты в нумпи в одну строчку делаются, было интересно реализовать
Uljahn: быстро и сердито
735487: ну да прикольно
[lazy]Opera: при SURFACE можно ходить и перезаряжать оружие?
Uljahn: конечно
Uljahn: можно все команды комбинировать по одной штуке за ход
Uljahn: лишь бы зарядов хватало
[lazy]Opera: а просто SURFACE torpedo?
Uljahn: :)
[lazy]Opera: В командах просто перезарядка только у move написана MOVE direction POWER
Uljahn: такой команды нет
Uljahn: заряд только от мува идёт
Uljahn: вот пример, как можно SURFACE | MOVE N TORPEDO | TORPEDO 3 5
Uljahn: poll on tooltips for the contest: https://strawpoll.com/47cd8f4a
[lazy]Opera: а, ну всё, именно эта информация отделяла меня от топ 3 :sweat_smile:
MadKnight: [lazy]Opera а какой у тебя алгоритм?
MadKnight: или у тебя ифы?)
[lazy]Opera: предикчю себя, и то как предиктит меня соперник
[lazy]Opera: но я ещё не брался за сайленсы, там моя стратегия развалится
735487: лол ссылу прочел как Ставрополь ))
mykeich: самый сложный wood 2 на моей памяти:) не могу выбратся
BorisZ: это уже их ослабили - был апдейт, то этого вобще жесть была
Uljahn: а первые 10 минут вообще на стартовом коде можно было пройти - боссы забагованные были, через 10 минут только чухнули и нормальных залили
Uljahn: прав был котоботов - жми сабмит, правила потом почитаешь
[lazy]Opera: можно ли использовать сайленс с мувом?
Uljahn: конечно
Uljahn: и мув с сайленсом
BorisZ: можно любой набор команд, но не более чем по разу
[lazy]Opera: это получается сразу 2 перемещения за раз
Uljahn: сайленс надо заряжать же
Uljahn: а мув палит твой путь
BorisZ: это хорошо, меньше раздолья для симуляций простых
[lazy]Opera: ну можно раз в 6 ходов ходить конём)
Uljahn: если оцениваешь свою траекторию как детектируемую, то да, в противном случае лучше мины спавнить или сонар юзать
[lazy]Opera: и ещё, сайленсом получается можно перепрыгивать посещённые клетки?
[lazy]Opera: т.е сходить назад в том числе
Uljahn: нельзя
Uljahn: This allows you to move 0 to 4 cells in a given direction (not visiting already visited cells or islands).
[lazy]Opera: не посещая уже посещённые клетки
wlesavo: Uljahn я пока не реализовал селфтрекинг, и сделал опасность если по мне уже попали
Uljahn: а как ты думаешь, подлодка передвигается? из воды выпрыгивает? конечно, последовательно через каждую клетку
Uljahn: все разночтения можно прояснить в рефери опять же
Uljahn: wlesavo: я пока вообще ничего не реализовал)
wlesavo: ну я пока тоже
Uljahn: думаю, сначала бота малость привести в пригодный для изменения вид
wlesavo: ща хочу базовые вещи впилить хотябы и посмотреть что будет
wlesavo: ну и это тоже да
Uljahn: зная историю можно кулдауны оппонента вычислять как в UTG
wlesavo: ну я на самом деле ни на что не претендую, не думаю что даже в легенду попаду, просто действительно увлекательно во время контеста писать
wlesavo: прям затягивает
Uljahn: у меня программа минимум - до голды дойти
Uljahn: а там как повезёт
Uljahn: времени вагон
wlesavo: у меня тоже, просто я ни в одной мульти до легенды ж еще даже не дошел, как то запал стухал, а тут живое обсуждение в двух чатах подбадривает
Uljahn: ну, эта игра менее рандомная, чем прошлый марафон на 30 дней - картишки
wlesavo: ну игра вообще удачная
Uljahn: и нумпи тут удачно вписывается
wlesavo: да
wlesavo: хоть я и не очень в нумпи, но прямо подначивает
Uljahn: я три года назад вообще не знал, что такое нумпи)
Uljahn: если б не контесты, и не узнал бы
wlesavo: не, ну слышать я слышал много, а вот попользовать на практике это другое
wlesavo: вообще я пока не пришел сюда был уверен что даже чистый питон оч быстрый язык
wlesavo: а потом я попробовал deepcopy
Hamibar: парни я что-то туплю. подскажите как по позиции найти сектор?
wlesavo: в NS просто избавление от дипкопи дало раз 10 прироста скорости
Hamibar: а кажется понял
wlesavo: Hamibar вроде бы x//5*3 + y//5*3 +1
wlesavo: ой чето не правильно в моей формуле
Uljahn: просто x//5 наверное без *3
Hamibar: я тоже только что это узнал)
wlesavo: я просто пока только в обратную сторону делал, ща еще подумаю, как раз тоже надо
BorisZ: def sector(self):
sx = self.x // 5 sy = self.y // 5 return sy * 3 + sx + 1
wlesavo: во, да
Hamibar: спасибо
Hamibar: надо пойти прогулятся наверное :grinning:
Uljahn: круто, код прям из чата можно копировать)
Uljahn: а потом забанят за списывание)
wlesavo: не, забанят бориса за выкладывание
wlesavo: вроде были прецеденты
Uljahn: один раз было такое - чувак выложил код на гитхаб посреди контеста в публичную репу
BorisZ: снипеты можно
Uljahn: да я шучу
Uljahn: тут и в общаке стратегии обсуждают вовсю, а это посерьёзнее, чем сниппеты какие-то
BorisZ: да и сейчас начало контеста - чего скрывать то, за месяц все идеи по тыще раз обсосутся, не то что это
Uljahn: MSmits вон тоже выкладывал структуру данных своего класса Cell под битборды
Uljahn: class Cell: http://chat.codingame.com/pastebin/efbad39e-668b-4e01-9efe-f33966cf299b
Uljahn: наводит на интересные мысли
Uljahn: я такую же мутил в Wondev Woman, numpy array of objects
735487: Neighbors у него имхо лишнее
Hamibar: Начал смотреть проигрыши - такие баги ужасные нашел)
Uljahn: так это самое лучшее место, где их искать
Hamibar: Причем эти баги еще с вуда.
Uljahn: поэтому все и стремятся выйти в бронзу хоть на костылях, а потом имея полные правила заняться переписыванием почти с нуля
Uljahn: вообще нафиг это дерево нужно
Uljahn: контест ещё толком не начался, а я уже выдохся :crying_cat_face:
wlesavo: спам сайленс конечно напрягает
wlesavo: надо что то делать антиспамное чисто для бронзы похоже
Uljahn: на каждый сайленс приходится две мины по заряду
wlesavo: есть просто люди у которых боты просто делают сайленс и все
wlesavo: и если ты никак его не учитываешь то это лучше чем учитвываешь
wlesavo: потому что там сайленс 0
Uljahn: мне кажется, эффективность сайленса от карты зависит
wlesavo: ну это плохие боты, но у меня код не оптимизирован под такое
Uljahn: ну и можно только сайленс 0 и 1 учитывать, остальные игнорить, чтобы комбинаторного взрыва не было
[lazy]Opera: мины ещё взорвать надо, а если противник сайленсит, то когда взрывать то?
wlesavo: и возникает очень много дубликатов
Uljahn: ближе к концу можно стоять на месте и взрывать, пусть противник выбирает - сайленсить или сонарить
Hamibar: Дерево конечно жесткое было. Потому что без стартер паков.
wlesavo: Uljahn но хорошие боты используют длинные прыжки
wlesavo: и тогда просто в пуле не будет его, короче мне надо подход таки менять
Hamibar: нельзя ведь стоять на месте?
Uljahn: можно
Hamibar: как?
Uljahn: если детонируешь мины
wlesavo: или сайленсишь
735487: мины походы надо статистически пытаться угадать. где больше вероятность зацепить те и взрывать
Uljahn: это одна команда, которая не требует чарджа
wlesavo: если ты не заряжаешь и тебе есть что тратить то можешь стоять на месте короче
Hamibar: я думал мув обязательная штука)
Uljahn: нет такого в правилах
Uljahn: Each turn you must perform at least one action.
Hamibar: Тогда наверное стоять часто выгоднее, меньше палишь себя.
Uljahn: угу, меньше хвост
Uljahn: больше простора для махинаций)
wlesavo: но и не заряжаешь
Uljahn: так от карты зависит, если мало суши - лучше заряжать и сайленсить, потому что легче хвост спрятать
wlesavo: надо короче эффективный механизм хранения траектории
Uljahn: для чего?
wlesavo: ну чтобы не плодить дубликаты
wlesavo: пока то что приходит в голову все не очень
wlesavo: проще вообще отказаться от траектории
Uljahn: я храню в виде массива
wlesavo: ну у тебя кандидаты это точка + траектория?
Uljahn: кандидаты у меня - это позиции, где траектория укладывается в карту
wlesavo: о, я придумал кажется
Uljahn: позиция левого верхнего угла возможного наложения массива, во
Uljahn: от него перехожу к начальной точке, потом к конечной, три преобразования координат - три сложения векторов
wlesavo: а как сайленс в траектории учитывается?
Uljahn: пока никак, но я уже думаю над этим
wlesavo: я придумал сейчас как в моем подходе реализовать
Uljahn: если просто надо размножить траекторию, можно просто начальную позицию представить в виде сета
wlesavo: я просто буду делать or на траекторию для совпадающих координат
Uljahn: объединять?
735487: я пока храню список точек где он может быть. вот думаю может цеплять сюда еще начальную и весь путь
wlesavo: да Uljahn, грубо говоря брать только те точки в которых он точно был
Uljahn: а, то есть ты сразу фильтруешь и хранишь только точки?
735487: только проблема в том что после сайленса есть куча точек куда приводят разные траектории
Uljahn: amurushkin
735487: да. сначала весь набор. потом он сужается
735487: удаляю их потихоньку
735487: при сайленсе добавляю
Uljahn: а как хранишь возможные направления?
wlesavo: amurushkin я так же делаю, но храню еще и траектории для каждой точки, что явно плохо
wlesavo: но как ща придумал вообще отлично
wlesavo: \
735487: я же знаю его последнее направление
735487: вот его запрещаю
wlesavo: ща быстренько подпилю и норм будет
735487: у меня был баг что я во время сайленса точки расставлял наоборот куда он не может пойти ))
735487: в итоге терял противника если он сайленсом прямо двигался
Hamibar: amurushkin точно такой же баг был. Отметал все точки по ходу движения, а надо было наоборот.
735487: похоже у многих баги одинаковые :)
Hamibar: Uljahn спасибо за подсказку + 30 мест.
Uljahn: :thinking:
Uljahn: что я подсказал такого?
Hamibar: что можно на месте стоять)
735487: минами?
Uljahn: да хоть радаром
Uljahn: сонаром т.е.
Hamibar: просто при любом действии.
735487: себе что ли попробовать. а то он у меня даже после всплытия куда то торопится ))
Hamibar: Но правда мины не копятся так
wlesavo: во, таймауты вылечил сразу лучше стало
wlesavo: теперь еще движение нормальное сделать, ато у меня там как аутисты плавают от края до края
wlesavo: лол, в реплее против боба, он прыгает на 4 клетки, стреляет и убивает меня, в действиях: | SILENCE W 4 | TORPEDO 5 7 | MSG Hello
Uljahn: а мув был?
wlesavo: а, оказывается хелло на всех действиях висит
wlesavo: нет, он с прыжка прям
wlesavo: кстати хорошая тема с черты начинать команды
wlesavo: я что то не додумался сразу
Uljahn: почему?
wlesavo: думал что пустая команда инвалидная будет и не проверил
735487: где то еще есть баги. нашел реплей где мой теряет противника опять
wlesavo: у меня хоть терять перестал
735487: я задумывался над таким. но пока руки не дошли искать такие варианты
wlesavo: ну ладно, на сегодня хватит наверное, главное сайленс нормально прикрутился
735487: а еще иногда надо всплыть чтобы догонять и не блокировать самого себя
wlesavo: ну у меня вообще движение не очень сделано
Uljahn: в общаке как раз сайленс обсуждают последний час, даже тестового бота запилили
735487: у меня мой как то странной за собой следит. после 10 мувов уже там нет координат где он есть :)
735487: заебись я пришел к выводу что мой бот вообще хз как работает. на одних мувах сам себя теряет
735487: это все из за переделок чтобы по 1 действию ходить ))
Hamibar: точно! у меня ведь тоже он есть)
735487: кто может предположить почему версия с подсчетом расстояния через манхеттен для выстрела играет в разы лучше чем с бфс. по идее же должно быть наоборот?