Chat:Ru/2020-04-14
 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: хрена се, в общаке голд ботов стримят
 RMuskovets: да) еще и "красть" ф-ции чел дает
 Uljahn: давайте уж сразу на гитхаб код легендарных ботов выкладывать, пусть народ учится
 miklla: после контеста некоторые так делают
 Uljahn: и в мульти потом никто не играет, потому что там клоны
 cheaz910: А как подсчитать возможные позиции врага, когда он использует сайленс? После нескольких сайленсов становится сложно считать
 Uljahn: оптимизируй вычисления, юзай сонар
 cheaz910: Просто бот на серебряной лиге выводит кол-во моих возможных позиций,  хочется достичь тех же цифр)
 Uljahn: лол, ты на питоне
 wlesavo: странно кстати что у серебрянного босса оставили мессагу а у золота убрали
 miklla: до некоторых пор можешь хранить все возможные траектории противника, а если их станет слишком много, то отрезать начало
 Uljahn: юзаешь numpy, cheaz910?
 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: я туда смитмакс впендючил
 monnyz: Ребят, вечер добрый, скажите пожалуйста, способствует ли сайт в изучение языка?
т.е, в получение новых знаний и т.п(глупый вопрос, знаю)
 wlesavo: способствует не то слово, но совсем с нуля начинать здесь не очень, минимальные знания лучше иметь
 Uljahn: тут сайт для практики, но можно на изи пазлах с гуглом и стековерфлоу качаться
 wlesavo: ну вообще да, изи пазлы можно совсем с нуля решать
 wlesavo: хм, с тем же кодом в троне уже 77 на 50%
 wlesavo: мож и до леги дойти можно
 monnyz: Тогда где посоветуете подкрепить знания?
 Uljahn: онлайн туториалы ищи
 Uljahn: какой язык изучаешь?
 Uljahn: желательно знать английский
 Uljahn: тогда можно попробовать что-то типа https://www.learncs.org/
 Uljahn: потом переходить к пазлам, решать, смотреть как другие решили
 amurushkin: по C# ulearn.me на русском
 wlesavo: unlearn me
 wlesavo: хм, 35, можно попробовать таки в легу пройти
 tutubalin: monnyz попробуй этот сайт: https://app.codesignal.com/arcade
 tutubalin: (требуется регистрация)
 tutubalin: там прям вобще с нуля почти