Chat:Ru/2020-03-21

From CG community
Revision as of 11:19, 15 June 2021 by Chat Log (talk | contribs) (Created page with "File:Default_avatar.png VLP-2270: Даров <img src=/a/25714480415254> tutubalin: привет <img src=/a/23956705948685> Uljahn: школы ещё не на кара...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Default avatar.png VLP-2270: Даров

tutubalin: привет

Uljahn: школы ещё не на карантине?

735487: еще не пришли же. они в 11 приходят ))

tutubalin: блин. дошёл до босса )

Default avatar.png Alex566: в бронзе босс какой-то легкий

Uljahn: это не босс

Uljahn: а дефолтный AI для тестов

Uljahn: босс будет, когда откроют серебро

Default avatar.png Alex566: облом. Я думал уже есть гарантия серебряной лиги

Uljahn: гарантия серебра - быть в топе бронзы

Default avatar.png Alex566: ладно, за неделю, думаю, все еще сильно поменяется

Uljahn: очевидно

Uljahn: щас битбордисты подтянутся)

Default avatar.png Alex566: это кто такие?)

Uljahn: те, кто на битбордах всё оптимизирует на плюсах

Uljahn: битборда - битовое представление игрового поля

Uljahn: занимает мало места, быстрые операции применения хода, поиска соседей и т.д.

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

Uljahn: эти челы будут выжимать 99.9% из первого и последующих

Default avatar.png Alex566: ну уже бывало такое, что не хватало

Default avatar.png Alex566: приходилось упрощать некоторые правила

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

Uljahn: я вот 3D карту глубин щас запилил :)

Uljahn: чем дальше от берега - тем больше глубина, или типа того

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

tutubalin: щас сало с сонаром запили и улечу в бронзу

tutubalin: *запилю

Uljahn: numpy юзаешь?

Uljahn: соперника трекаешь?

tutubalin: соперника трекаю без numpy

tutubalin: просто список возможных позиций

tutubalin: фильрую через filter

tutubalin: обана!

tutubalin: пропушили меня )

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

Uljahn: гратц

tutubalin: вот я сперва тоже сперва про пути думал

tutubalin: оно может быть потом пригодится

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

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

tutubalin: - если всплывает или стреляет, то соответственно убираю те клетки, из которых он не мог это сделать

tutubalin: - если включает тишину, то для каждой возможной клетки рисую крестик (с учётом границ и острово)

735487: а во время тишины закрашивает путь?

tutubalin: да

tutubalin: можно переместиться сперва через MOVE, а потом через SILENCE

tutubalin: в один ход

735487: tutubalin: а твоя идея проще чем моя трекать путь и каждый раз от пути проверять все клетки с которых он возможен. хотя вот с путями я собирался для себя проверять пути которые сложнее детектятся и по ним ходить. а с сонаром думал делать дерево путей от этой точки. но я пока вообще хз будет ли это работать. как быстро и все такое

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

735487: Uljahn: в вуд 1 можно пройти без детекта противника даже. у меня просто смотрел в 4 стороны и выбирал по оценке ту где путь свободнее. этого хватило. стрельба рандомная в 4 стороны на 3 или 4 клетки

735487: из багов было что я не закрашивал свой путь в точке которой появляешься и после surface. он из за этого мог себя убивать. как пофиксил это все так и пошло дело

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

Uljahn: масочки-масочки, да не от короновируса, Automaton2000

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

tutubalin: "из багов было что я не закрашивал свой путь в точке которой появляешься"

такая же фигня )

Uljahn: хм, у меня сразу закрашивает

tutubalin: точнее, я после всплытия не закрашивал

Uljahn: то есть?

tutubalin: там как-то не очевидно в правилах про это было

Uljahn: а, т.е. клетка после всплытия всё равно считается посещённой

tutubalin: когда всплывал, полностью очищал поле. а надо ту клетку, где всплыл, считать посещённой

Uljahn: вот этот есть баг

tutubalin: у меня ещё был баг, когда бот стрелял на шару и попадал сам в себя )

735487: у меня в себя не попадает потому что стреляет далеко всегда ))

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

735487: мне кажется это лишнее. все что тебе нужно это проверять можно ли дострельнуть из искомой точки до цели

Uljahn: а если нельзя, рероллить рандом?

735487: о я придумал и как путь хранить и не проверять при этом все подряд ))) скрестил свою идею с tutubalin ))

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

Uljahn: но ты же с рандомной стрельбой из вуд2 выходил?

735487: да но я не уверен что она зарешала.

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

Uljahn: тогда лучще займусь предсказанием противника

735487: предсказание в любом случае делать

Uljahn: полез в старые боты за готовыми решениями - нашёл codebusters бота на питоне 2, переписал и ресабмитнул :)

Uljahn: +500 мест в голде

735487: а что много общего?

Uljahn: ну там у меня были numpy трюки полезные

735487: а ты в codebusters ресабмитнул

Uljahn: угу, а то он на днище скатился

Uljahn: в голде почти 1к народа, нифига се

kotobotov: здаров посоны

kotobotov: ну что, как там КАРАНТИН?

kotobotov: все на удаленке?

tutubalin: о, сколько лет!

kotobotov: ну я инногда заглядываюЖЕЖ)

tutubalin: Карантин пати ин да хаус

kotobotov: привет тутубалин

aaafgcfg: тутубалин триз?

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

Uljahn: го в лодочки

aaafgcfg: ну блин

aaafgcfg: нас застаавляют делать конспекты лекций и практику в тетрадях и отправлять фотки на проверку

Uljahn: фотки на плёночный фотик, проявлять печатать и по обычной почте отправлять?

aaafgcfg: конспект из книжки которая называется конспект лекций по высшей математике

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

Uljahn: можно GAN натренить, чтобы фотки лекций генерил по заданному тексту

aaafgcfg: а локалраннер у лодочек есть или самому писать?

Uljahn: есть рефери на гитхабе

Uljahn: на джяве

MadKnight: aaafgcfg чё делаешь?

aaafgcfg: да так 1 курс матанализа

Uljahn: дифуры, инегралы?

aaafgcfg: а, в лодочках че планирую?

aaafgcfg: поверхностный интеграл

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

Uljahn: ни разу не пригодилось в жизни

kotobotov: Уль, ну да, лодочки это интересно

kotobotov: я уже почитал

aaafgcfg: неприятно то что чем дальше изучаешь тем ненагляднее знания

kotobotov: хотя тут одна контора курсы свои открыла бесплатные, я буду их проходить до лета (там дохера)

kotobotov: на топ неебаться разраба

kotobotov: так курс и называется "Фром зиро то ТОП НЕЕБАТЬСЯ РАЗРАБ"

Uljahn: >бесплатные

tutubalin: Neyebatso Inc.

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

tutubalin: ага

tutubalin: если не зацепит - тоже

tutubalin: только что закончил это реализовывать )

Uljahn: я-то думаю, как босс выпасает

tutubalin: самое сложное - понять, попал или нет

Uljahn: так хп в инпутах есть

tutubalin: а если он всплыл?

tutubalin: а если он сам себя шарахнул?

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

Uljahn: не?

tutubalin: да, но надо это учитывать

Uljahn: :)

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

Uljahn: там ещё и мины

tutubalin: ветвление сильно жёсткое

tutubalin: вот-вот

Uljahn: ахах у меня пока код прямой как лом

tutubalin: если противник потерял два здоровья и мы оба стреляли, то это: http://chat.codingame.com/pastebin/971f9be7-3043-4f00-aa3a-2c5f9a131945

tutubalin: если противник потерял два здоровья и мы оба стреляли, то это:


tutubalin: - я попал чётко, он не попал - он попал сам в себя чётко, я не попал - мы оба попали нечётко


tutubalin: - а ещё могут быть мины...

Uljahn: координаты выстрелов известны же

Uljahn: тупо маски наложить

Uljahn: от коронавируса, Automaton2000

Automaton2000: но у меня есть задумка

tutubalin: я не говорю, что невозможно. я говорю, что геморроя много

Uljahn: мне вот лень инпуты соперника парсить :/

tutubalin: да там легко

tutubalin: split('|')

tutubalin: потом каждый из них split()

tutubalin: первый элемент - команда, остальное - параметры

Uljahn: угу, так и сделал

Uljahn: теперь условия прописывать...

tutubalin: всё, у меня бот пошёл выпаливать. бьёт как снайпер

Uljahn: def crop(arr):

   # remove zero rows and columns
   return arr[~np.all(arr == 0, axis=1), :][:, ~np.all(arr == 0, axis=0)]

Uljahn: нойс

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

Uljahn: 2мс бот выжирает за ход

Uljahn: с флудфилами через всю карту)

tutubalin: да карта-то маленькая

Uljahn: так флудфил не оптимизированный на питоне

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

Uljahn: не вычислять соседей каждый раз

735487: а я еще ничего не писал для бота сегодня :)

Default avatar.png Alex566: бывают какие-то общие практики по структурированию бота? А то у меня все попытки построить стейт машину со временем доходят до того что 1 стейт хендлит все

Default avatar.png Hamibar: Хоть какой-то плюс от вируса. Внеочередной контест!

Uljahn: ну, контест слепили наспех, много багов

Uljahn: и стартер ботов нету

Hamibar: так я думаю за месяц исправят

Uljahn: 1,540 CodinGamers have registered to this contest 276 сабмитнуло

Hamibar: насколько я понимаю торпеда не совсем торпеда? Она прилетает в цель на том же ходу?

Uljahn: приплывает, если длина пути не более 4

Hamibar: Ага, спасибо. Понял

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

735487: да энергия тратится

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

tutubalin: нет

tutubalin: в мае вроде другой

tutubalin: этот в экстренном порядке соорудили

tutubalin: This challenge is the result of last-minute efforts from two well-known members of the community, Illedan and EulerscheZahl who were eager to improve an old game prototype from our product manager G-Rom. As you can guess, it may not run as smooth as usual. We'll try our best to ensure it does.

eulerscheZahl: a random ping occured

tutubalin: eulerscheZahl sorry )

tutubalin: i quoted email

eulerscheZahl: i can confirm it's not the may contest

tutubalin: we were discussing is that the same contest that was planned for May or not

tutubalin: thanks!

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

735487: нарандомило

tutubalin: тренировки в рейтинг не идут

tutubalin: https://www.codingame.com/replay/441058063

tutubalin: Yellow Submarine hunts Red October

735487: как ты так быстро по нему попадать стал?

Default avatar.png Alex566: помимо поиска по трафарету еще какие-то проверки делают? emh меня как-то детектит хорошо при еще маленьких дистанциях :thinking:

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

tutubalin: а потом уже когда увидел, что попал, локализовал его очень чётко

tutubalin: после прямого попадания, если не уходит в тишину, я точно знаю координаты

Default avatar.png Alex566: а если попадаешь в соседнюю клетку отсекаешь те варианты положения, которые по трафарету не накладываются?

Default avatar.png Alex566: как много проверок. Надо все заново переписать)

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

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

Hamibar: а какой максимальный power возможен?

tutubalin: зависит от девайса

tutubalin: торпеда - 3 сонар - 4 сайленс - 6 мина - 3

tutubalin: или ты про какой power?

Hamibar: нет я имею ввиду тот, который при движении

Uljahn: радиус silence?

tutubalin: ты про mars lander? :)

Hamibar: MOVE direction POWER в этой команде

Uljahn: или про гоночки

Uljahn: 100

tutubalin: power - это название девайса, который заряжаешь

tutubalin: не число, а стринг

Uljahn: ахах, точно

Hamibar: ааааа. xD теперь понятно

Uljahn: один мув даёт одну единичку заряда указанному девайсу

tutubalin: и вот выбрать, какой заряжать конкретно сейчас - тоже интересная задача

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

tutubalin: напрямую нет

tutubalin: в Wood 2 появляется девайс SILENCE, который позволяет потихому проехать до 4 клеток в одну сторону

tutubalin: *в Wood 1

Hamibar: да я понял уже, спасибо. Просто в деревянной лиге нет SILENCE)

Uljahn: если б тут ещё и скорость регулировать можно было, то это уже coders of the caribbean получились бы

FeZar97: контест вчера чтоли начался?

735487: да

FeZar97: даже оповещение на почту не пришло(

tutubalin: рассылали

Valdemar: Тут целый месяц еще, ты не сильно опоздал

KDaniiell: В Coders Strike Back точки могут появляться так, что они будут касаться/пересекать границы поля?

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

BorisZ: неожиданно начался контест, о котором так долго говорили все большевики )

735487: нет это другой :)

BorisZ: короновирусный

input.txt: Может ли враг за один ход стрельнуть в себя торпедой, прыгнуть сайленсом, потом подвинуться в сторону и всплыть?

input.txt: и как все это детектить?)

tutubalin: может

tutubalin: каждый приказ по очереди разбираешь

input.txt: и порядок важен?

tutubalin: конечно!

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

Uljahn: это получается, за ход можно на 5 клеток продвинуться и на 4 ещё стрельнуть, да ещё сплэш, это 10 рейндж максимальный

input.txt: ты сначала столько энергии накопи..

Uljahn: 8 ходов, одна энергия в тот же ход накапливается

tutubalin: почему не нужно выбирать начальную точку рандомно: https://www.codingame.com/replay/441122977

735487: у меня по оценке выбирается ))

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

735487: а я вообще до сих пор в дереве )))

Uljahn: замутил такую штуку http://chat.codingame.com/pastebin/02231358-5fd2-432f-aed3-41405ea4f02c 0 - вода, 1 - суша, depth - буферное расстояние до суши и границ

xoposhiy: это зачем? начальную позицию выбирать?

Uljahn: угу

Uljahn: amurushkin: даже в дереве можно научиться чему-то новому :)

xoposhiy: нынешний контест адски напомнил WonDevWoman.

xoposhiy: А также у меня вопрос. Чего так сложно из дерева вылезти?! :(

Uljahn: я тоже про WW вспоминал уже, а боссы жёсткие, потому что 30 дней контест

tutubalin: сделал стелс режим. теперь умеет использовать сайленс и не стреляет направо и налево без причины. но буст получился не такой значительный: с 14 места на 11

tutubalin: тут надо какой-то баланс найти

tutubalin: с одной стороны когда стреляешь, очень сильно выдаёшь себя

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

input.txt: главное по себе не попадать - это как мишень на лбу

tutubalin: это да )

tutubalin: но! не попадая в себя ты всё равно уменьшаешь зону поиска

input.txt: я не уверен, но если стрелять в одну сторону, зона не так режется

tutubalin: от клетки выстрела смотрим все клетки с манхэттоновским расстоянием от 2 до 4. в худшем случае их будет 32

tutubalin: но в реальности там есть острова, плюс информацию от предыдущих раундов

tutubalin: в итоге остаётся 10-20 возможных клеток после первого выстрела

tutubalin: круче чем сонар и почти идентично всплытию, иногда даже хуже

735487: а после 3 как в геолокации уже можно знать положение :)

tutubalin: вот-вот )

input.txt: (древняя шутка про ракету "земля-провайдер")

735487: расскажи шутку

input.txt: к сожалению, это единственное что я оттуда помню(

MadKnight: https://tvrain.ru/news/moskva_24_pokazala_intervju_s_koronavirusom-505096/

735487: кому то нех делать

735487: гугл говорит что вот: Ученый-компьютерщики решили облегчить жизнь юзеров и создали ракету системы "Земля - Провайдер".

735487: на том и все

Uljahn: баллистическая шутка, Automaton2000

Automaton2000: да я не про то

input.txt: А, значит про пеленг по mac-адресу это было что-то другое..

Uljahn: триангуляция по пингу

MadKnight: так вот как решать batman pt.2

MadKnight: amurushkin твои шутки - это уже не шутки

MadKnight: cyka blyat

MadKnight: amurushkin это уже сюжет терминатора 6

MadKnight: там они решили нанести ракетный удар по программе в интернете

Uljahn: сценарий уровня роскомнадзора

735487: MadKnight: это не мои шутки не бомби

tutubalin: кстати, лайфхак

tutubalin: если температура и кашель и звонишь в скорую - тебя пошлют нахер, скажут что ОРВИ

tutubalin: сиди, мол, дома и не мешай работать

MadKnight: прям из дома можно больничный получить?)

tutubalin: а если пойти в кафе, покашлять и позвонить в роспотребнадзор - сразу приедут люди и увезут лечиться

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

tutubalin: я по-итальянские знаю только вафанкуло, кацо

tutubalin: или как-то так

BorisZ: а что сначала свое движение или своя торпеда взрывается?

BorisZ: как в себя то не пульнуть?

tutubalin: а в каком порядке напишешь, в таком и произойдёт

BorisZ: не в жить бв не догадался )

MadKnight: а, так можно пальнуть вперёд, потом сделать move и самоподорваться?)

BorisZ: gracio

tutubalin: чтоб самоподорваться, надо стрельнуть прямо туда, где стоишь

tutubalin: если сперва пальнуть (далеко), а потом потойти - всё ок

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

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

Ramdeath: жми submit

Uljahn: чё-т не получается разобраться с привязкой координат противника к траектории, надо пробросить через три системы координат, или там можно как-то проще, но башка не варит уже :crying_cat_face:

Ramdeath: :)