Chat:Ru/2020-04-14

From CG community
Jump to navigation Jump to search

tomatoes: в кораблики

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

BorisZ: you need to go deeper

BorisZ: или как там

BorisZ: прикольно если б можно было плыть по поверхности после всплытия

BorisZ: но позиция точно будет известна

miklla: подлодка на курьих ножках

BorisZ: плюс еще какой-то дизадванаж

BorisZ: два уровня как бы - практически 3Д

miklla: за многоуровневостью - в WW

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

miklla: блин, 3 дня почти ничего не писал - пытался придумать как можно намутить минимакс - сдаюсь, нереально

miklla: буду на себе фокусироваться

BorisZ: без сайленса можно наверное

BorisZ: расчитать исход дуэли - типа того

miklla: у меня на моём ходу с обрезаниями ветвление в 3к бывает

miklla: без обрезаний в десятки тысяч

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

miklla: а ещё бывают сайленсы и всплывания

BorisZ: не учитывать их может попробовать

miklla: но когда-то делать придётся же

BorisZ: ну кроме последнего удара может

miklla: и у противника много возможных позиций

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

miklla: даже если ты каким-то чудом осилил глубину 5 без учёта чего-то, получишь полную ерунду, потому что использовал неверные предположения

miklla: писать минимакс чтобы работал только когда обе позиции известны и сайленс в кд - вообще хз

miklla: у меня уже 1.4к строчек

miklla: в основном на движок

miklla: и детекты

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

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

BorisZ: у всех много понаписано думаю, у меня тоже 1400 строчек

BorisZ: надо срочно добить до 2к, непорядок

amurushkin: 2048 правда часть старого кода там еще в комментах

miklla: сколько на питоне позиций за ход перебирается? наверняка несколько сотен

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

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

BorisZ: да и то 3мс -это первый ход видимо, так то 1мс

miklla: значит твой бот пока не нападает внезапно через 9 клеток

miklla: хотя хз

BorisZ: если убить может только тогда

miklla: у меня без убийства иногда нападает

miklla: если вероятность урона неплохая и не будет суперпалева

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

BorisZ: искать для врага лучший путь может

miklla: у врага много возможных позиций

miklla: и вообще такое себе загадывать где враг будет на большой глубине

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

miklla: да, что-то такое думал, но хз

miklla: вероятности выстрелов настраивать

BorisZ: тогда будешь бегать от врага опять таки )

BorisZ: всегда

miklla: что-то в чат сообщение иногда больше 30 сек отправляется

miklla: ну или наоборот, доходит, что отправилось

wlesavo: я тут вот что подумал

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

wlesavo: либо мину взрывать

BorisZ: сомнительно - сведешь свои позиции с 1 до 2, потратишь торпеду зря

wlesavo: почему до 2

BorisZ: центры взрывов

wlesavo: не центры

wlesavo: а два выстрела

BorisZ: если на 2 прилетело - ты в центре

BorisZ: с точки зрения врага

wlesavo: типа он тебя попал и ты сам себя попал

wlesavo: краями

wlesavo: он же суммарный урон получит

miklla: ещё жёстче, если между взрывом противника и твоим свой сайленс проюзать

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

miklla: тогда жёсткий перебор

BorisZ: ну если ему придет на след ход 1 взрыв и у тебя урон 2 - он знает твою точную позицию, если придет 2 взрыва и урон два - до до 2х позиций

miklla: но это всё само учитывается, если делать через оценки позиции

wlesavo: нет же

wlesavo: комбинаций на 2 очень много

miklla: он не знает твою точную позицию

BorisZ: ну согласен, можно сделать несколько на 2

miklla: даже, уже думал о таком, оценка позиции это всё отлично обрабатывает

wlesavo: да, а если стрельнуть еще и после сайленса это вообще неплохо

BorisZ: по линии на расстоянии 2 если там есть кндидаты - будет всего 4 позиции

miklla: лишь бы не отпрунить себе слишком много до этого

BorisZ: с 2 урона

BorisZ: да годная идея вполне, можно пробовать

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

BorisZ: можно и с 1 урона

wlesavo: вообще да

wlesavo: по реплеям часто это само так происходит

wlesavo: но можно форсить это

BorisZ: miklla ничего не отпрунится - ты с его точки зрения просто расширяешь маску урона на 2

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

BorisZ: если торпеды не жалко конечно )

wlesavo: наверное

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

miklla: перебираются - в смысле доходят до оценки

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

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

BorisZ: а если стрельнуть в 3-1 то под уроном 2 будут еще 4 клетки

BorisZ: если там тоже были твои кандидаты, то враг не сузит твою позицию до 1

miklla: я в курсе

wlesavo: но хочется и врага зацеепить при этом

BorisZ: и рыбку съесть и на х сесть

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

wlesavo: именно

miklla: как мало накрывающий

miklla: при собственном переборе

miklla: у меня забавная история была

wlesavo: ладно, надо просто прикрутить в паре вариантов и посмотреть

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

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

miklla: и таким образом просто так терял 1 хп

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

Default avatar.png RMuskovets: да) еще и "красть" ф-ции чел дает

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

miklla: после контеста некоторые так делают

Uljahn: и в мульти потом никто не играет, потому что там клоны

Default avatar.png cheaz910: А как подсчитать возможные позиции врага, когда он использует сайленс? После нескольких сайленсов становится сложно считать

Uljahn: оптимизируй вычисления, юзай сонар

Default avatar.png cheaz910: Просто бот на серебряной лиге выводит кол-во моих возможных позиций, хочется достичь тех же цифр)

Uljahn: лол, ты на питоне

wlesavo: странно кстати что у серебрянного босса оставили мессагу а у золота убрали

miklla: до некоторых пор можешь хранить все возможные траектории противника, а если их станет слишком много, то отрезать начало

Uljahn: юзаешь numpy, cheaz910?

Default avatar.png cheaz910: Uljahn, нет

Uljahn: BorisZ: а ты тоже без numpy трекаешь?

BorisZ: cheaz910 надо каждый ход пробегать обратно по истории ходов - обрежутся многие варианты

BorisZ: да вроде ни к чему совсем numpy

Uljahn: :crying_cat_face:

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

wlesavo: хотя на питоновских листах это была бы боль

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

BorisZ: * в сетах

wlesavo: ну вот да, двумерные листы в питоне особенно если их нужно копировать это ппц

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

wlesavo: но с нумпаем просто, берешь кусок и массива и на него +1

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

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

BorisZ: и чет не нашел как, разочаровался (

Uljahn: а, я помню, ты спрашивал

miklla: тогда в значения добавить координаты?

wlesavo: ну я планирую посерьезнее за нумпай взяться

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

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

miklla: можно несколько бит выделить, или у тебя уже 64 бита было занято?

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

Uljahn: подожди, какие объекты? есть же structured arrays

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

miklla: :)

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

Uljahn: надо было на SO вопрос закинуть)

Uljahn: там такие крутые вещи пишут

Uljahn: чем больше вопросов будет отвечено, тем проще потом пользоваться нампаем - сообществу выгодно отвечать

BorisZ: да я понимаю, если б я его юзал где-то еще то надо вкладываться

Uljahn: ML/RL не интересуешься?

Uljahn: DL ещё забыл

BorisZ: делал пару заходов, даже курсы начинал и даже один или два до конца )

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

Uljahn: всё равно полезно - главное понять, что магии нет, а есть массивы весов :)

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

amurushkin: да никак. мой иногда даже таймит от такого

Uljahn: это при скольки тысячах вариантов примерно?

amurushkin: 40000+

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

amurushkin: наверное. но для себя может как то и упростить можно

amurushkin: у моего бота другая проблема. зачастую он считает что еще много позиций у него а по нему уже стреляют

wlesavo: может позиции плотно

wlesavo: а, ну я еще штрафую дополнительным весом сайленс 0

amurushkin: у меня сайленс сейчас либо 0 либо если после всплытия то на максимум. я его пока никак не выбираю

BorisZ: пропихнули еще одного в легу

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

tutubalin: например, чаще всего салом прыгают на 0 или 1 клетку.

tutubalin: очень редко на 3 клетки

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

BorisZ: это метагем такой в золоте

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

BorisZ: мину там перепрыгнуть или еще чего

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

BorisZ: короче откуда путь можно построить повыгоднее

BorisZ: ну подкрутишь потом вероятности

BorisZ: наверное лучше если они есть чем их нет )

tutubalin: да, я уже подкручивал )

tutubalin: Valdemar ага, мешает ) те, кто прыгают на 4, сбивают с толку. но по закону больших чисел в целом выгоднее

metahom: ща я нмаходе в легу запихаю

wlesavo: второй питон в леге

wlesavo: не проиграть бы компетишн языковой

wlesavo: ато я уже особо не планирую улучшений

metahom: он примерно моего уровня чувак

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

wlesavo: времени куча еще

metahom: wlesavo, а ты в следующем контесте участвуешь?

metahom: я вот тоже пытаюсь зеноскейва обойти. но я за третье место )))

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

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

wlesavo: на самом деле зашел в трон погонять, чето захотелось расслабиться после этого всего))

wlesavo: да, я на топ 10 не рассчитываю уже, но очень интересно что там выкатят посмотреть

metahom: а че ты, поборись еще

Uljahn: на питоне?

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

metahom: ты и сейчас в десятке, глядишь удержишь

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

wlesavo: так это еще не подтянулись

wlesavo: ща какой-нибудь роял и чак допишут и все

Uljahn: ещё карлисо и дапорана не видать

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

Uljahn: не то, что должны, но могут удивить в последнюю минуту

metahom: дапоран вроде давно не играет

wlesavo: лол, в троне был говнокод на 300 строк с 600ым иестом, ща переписал на мега примитивную оценку влияния на 200 строк с нумпаем и кажется промоушен в золото ща будет как досчитается

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

wlesavo: я это и сделал фактически

wlesavo: просто без минимакссов без ничего на глубину 1

wlesavo: засабмитил протестить

wlesavo: и проммут

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

wlesavo: офигеть, два с половиной часа ждать теперь промоута

BorisZ: то есть одно решение по сути

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

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

wlesavo: все-таки не думал что так просто будет с троном

amurushkin: BorisZ у меня в троне не минимакс :)

amurushkin: я туда смитмакс впендючил

Default avatar.png monnyz: Ребят, вечер добрый, скажите пожалуйста, способствует ли сайт в изучение языка? т.е, в получение новых знаний и т.п(глупый вопрос, знаю)

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

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

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

wlesavo: хм, с тем же кодом в троне уже 77 на 50%

wlesavo: мож и до леги дойти можно

Default avatar.png monnyz: Тогда где посоветуете подкрепить знания?

Uljahn: онлайн туториалы ищи

Uljahn: какой язык изучаешь?

Default avatar.png monnyz: c#

Uljahn: желательно знать английский

Default avatar.png monnyz: ну базу знаю

Uljahn: тогда можно попробовать что-то типа https://www.learncs.org/

Uljahn: потом переходить к пазлам, решать, смотреть как другие решили

Default avatar.png monnyz: Окей, спасибо!

amurushkin: по C# ulearn.me на русском

wlesavo: unlearn me

Default avatar.png monnyz: спасибо

wlesavo: хм, 35, можно попробовать таки в легу пройти

tutubalin: monnyz попробуй этот сайт: https://app.codesignal.com/arcade

tutubalin: (требуется регистрация)

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