Chat:Ru/2020-04-09
SemenyutenkoAndrey: Подскажите пожалуйста, а что такое MGS? Смотрю правила и не вижу, для чего он?
metahom: сообщение выведет на экран
metahom: если багу словил можно вывести мессагу и увидишь ее при просмотре реплея
namaska: правда что поддержка python 2 в 2020 пропадет ?
Uljahn: да
MadKnight: да, я что-то такое слышал
MadKnight: пора бы уже на 3 переходить, Automaton2000
Automaton2000: agade wants to practice automatonnn's russian
MadKnight: namaska чё пилишь?
namaska: в python 2 ?
MadKnight: не, вообще
MadKnight: сейчас
namaska: слава богу нет
MadKnight: да не, всм что вообще пилишь?
MadKnight: чё сейчас пилишь?
namaska: ботав в телеграмме
MadKnight: чё за ботов?)
MadKnight: чтобы играть в кодингейм через тг ?)
namaska: на паскале сайты взламываю :joy:
MadKnight: да ваще
MadKnight: изи
namaska: хз , бывало на заказ
namaska: есть эхо боты ,а есть норм боты
namaska: эхо боты намного легче делаются чем норм (это логично)
namaska: но однажды у меня какой-то дурачок эхо бота за 15 баксов взял
namaska: хпх
namaska: изи мани
MadKnight: лол
fresh-ter: #namaska, где хостишь бэкенд ботов? Покупаешь виртуальный сервер или на каком-нибудь сервисе
miklla: попал в голды без использования мин/сонара, трекаю лишь MOVE, SURFACE, TORPEDO, SILENCE, TRIGGER, челлендж выполнен :)
miklla: в голду*
mykeich: крут
wlesavo: тригер без мин?
wlesavo: а, трекаешь тригер
miklla: да, просто обрабатываю, что был взрыв там-то, не пытаюсь выяснить какой мине соответствует
NightLuna: miklla, а я без трекинга TRIGGER, но с сонаром))
fresh-ter: (╯°□°)╯︵ ┻━┻
miklla: эх, только на самом деле всё надо трекать
Hamibar: ох завтра лега открывается. что-то неделя быстро прошла
wlesavo: за весь голд так толком ничего не добавил
wlesavo: серебро самое продуктивное для меня было
Hamibar: видели тизер весеннего контеста?
wlesavo: fuf
wlesavo: ага
wlesavo: на почту даже пришел
Hamibar: понял о чем за игра будет?
metahom: в контрибьюшнах уже висит пакман
Hamibar: где? я что0то не вижу
metahom: да, больше нет. от Антисквида был
metahom: видимо сильно похож был )))
namaska: у кого какая самая любимая задача ?
wlesavo: metahom там же прикол был, он выложил и в течении часа удалил опять, говорит неправильно понял, оказывается cg хотят его одновременно с контестом выпустить
Hamibar: интересно снова клеточная будет.
Hamibar: или же нет
namaska: (самая интересная задача которую вы решили )
metahom: )))
metahom: а зачем одновременно? чтобы никто не играл?
BorisZ: namaska задачи это не очень интересно, тут главное контесты
BorisZ: ну решил ты задачу, ее еще тысяча человек решило, а контест реальное соревнование, и поговорить есть о чем
BorisZ: если пакман то уж наверняка клеточная, с физикой тут вряд ли связать можно
Hamibar: namaska как-то видел интересную алгоритмическую задачку. Есть массив длинны n + 1. В нем числа < n, какие-то из них повторяются 2 или более раз. Нужно за O(n) времени и O(1) памяти найти любое число которое повторяется.
Hamibar: BorisZ бонусы какие-то собирать надо будет. Вон на картинке 3 разных ящика
BorisZ: грузанул ты задачкой
Hamibar: я и сам не очень помню как ее решать)
Alex.swift: может там массив был отсортирован?
Alex.swift: хотя тогда слишком просто
Uljahn: последовательно ксорить числа и сравнивать с предыдущим шагом
wlesavo: не, сказали не пакман будет, возможно просто с тематическими отсылками
Hamibar: там она сводится к нахождению цикла в каком-то графе.
Hamibar: Uljahn а что должно измениться если встретишь число которое уже было?
BorisZ: если бы был только один повтор то легко - сумму найти потом из нее вычесть сумму арифм прогрессии
BorisZ: тоже не понял что нам даст ксоренье
Uljahn: ничего не даст, просто первое, что в голову пришло)
BorisZ: если бы все числа были простые то можно было бы копить произведение и делить на следующее - если нацело получилось то нашли
Hamibar: я нашел ссылочку. Там внизу решение. http://aperiodic.net/phil/archives/Geekery/find-duplicate-elements.html
wlesavo: а что если взять факториал и делить, когда не разделилось значит мы уже на это делили
Uljahn: факториал по памяти не пролезет, наверное
wlesavo: ну вообще да
StepanSmirnov: скорее всего надо использовать то, что само число подойдет как индекс
wlesavo: да, прикольное решение, но я думал что у нас массива нет, то есть ограничение по памяти подразумевает что мы только один раз считали значение и забыли его
Hamibar: мб такую тоже можно решить)
BorisZ: да, красиво, действительно надо значения как индексы юзать, потом цикл найти
Uljahn: числа < n могут быть отрицательные :)
Uljahn: или даже действительные
Ginees: кто нибудь решал Mars Lander - Episode 2 на Lua?
Hamibar: :grinning: да наверное условия можно было получше написать
BorisZ: Ginees на странице с описанием задачи (та которая до IDE) есть вкладка солюшнс - там выбираешь язык и видно кто решил, на луа 6 решений есть всего
Uljahn: да там изи решить на любом языке, у меня магическая формула есть
Uljahn: почти -3Vel
SemenyutenkoAndrey: Подскажите пожалуйста, а в чём разница между бронзовой и серебряной лигой? Что добавляется?
metahom: ничего
Uljahn: добавляется более сложный босс))
SemenyutenkoAndrey: ясно спасибо
NightLuna: на leetcode идет месячный челледжд, каждый день по задаче. первая задача была как раз такая дан массив чисел, нужно узнать какое число ни раз не повторялось
NightLuna: правда я бросила, когда узнала, что тут контест идет
Uljahn: решил mars lander 2 на lua ради прикола, - ну и язык... :smirk:
Uljahn: скриптовый паскаль какой-то
wlesavo: ну у тебя и приколы конечно :slight_smile:
Uljahn: что угодно - лишь бы трекинг сайленса не писать))
amurushkin: играюсь с коэфами. пытаюсь заставить его не ставить мины по краю поля. ему пофиг )) один фиг ставит
wlesavo: у меня там хардкодно границы уменьшены при поиске места
wlesavo: не очень конечно, но был какой-то баг и мне показалось что так даже лучше
Tunez: у кого - то здесь есть рил сложные алгоритмы?
amurushkin: а что считать сложным алгоритмом?
wlesavo: не, даже топ1-2 говорили что у них пока ничего сложно
wlesavo: го
wlesavo: но так у меня почти 2к строк, из них где-то 500 устаревшие версии функций которые я пока не решаюсь снести
amurushkin: у меня функция для начального положения 3 штуки в коде ))
Alex.swift: а кто как делает проверку можно ли дострелить до определенной точки? У меня там делается целый поиск пути по А* но кажется каким-то оверхедом
StepanSmirnov: Я в самом начале считаю для каждой точки маску с досягаемыми клетками
735487: я проверяю манхеттеном а потом уточняю через бфс
Alex.swift: тоже сначала манхеттеном проверяю. Тогда с А* вариант в принципе тоже норм
wlesavo: я делаю градиентное заполнение, и потом в нумпае маску отсекаю
wlesavo: euler вообще говорил считает расстояние между всеми точками за первую секунду и потом хранит
BorisZ: я тоже в первом туре для каждой точки считаю сет досягаемости торпеды
Tunez: пасаны, а энергия на все действия общая?
735487: я пытался за первую секунду рассчитать все точки но у меня таймило и я пока забил
wlesavo: ты заряжаешь конкретное чтото
Tunez: а как выбирать что заряжать?
wlesavo: MOVE N POWER_TO_CHARGE
Tunez: понял, сорян, документацию чутка не понял
Alex.swift: та вариант с предрасчетом на 1м шаге интересный, но думаю сначала надо переделать старт. Топ игроки смотрю дольше в начале игры не детектятся и это им позволяет мин больше ставить в начале
wlesavo: у меня старт рандомный
Alex.swift: у меня делается расчет на несколько ходов и выбирает самый плохотрекаемый, но кови как-то дольше не детектится. Или не повезло с рандомом
735487: у меня очень много партий кончаются с разницей в 1 очко
wlesavo: кови рано сайленс начинает использовать
wlesavo: по крайней мере в той версии что сейчас в сабмите
wlesavo: amurushkin так на это финишер нужн
735487: у меня пока фишинер проверяет смогу ли я попасть если двинусь навстречу и заюзаю сайленс
735487: а вот так чтобы понять кто в дуэли выиграет у меня нет
Alex.swift: у кови, вроде, 30 точек порог сайленса. Когда у меня остается меньше 30 вариантов делает сайленс
735487: у меня 10 ))
Alex.swift: у меня тоже)
amurushkin: осталось сделать поиск пути наперед и уверенно сказать что я фичи не смог закодить нормально ))))
735487: сейчас проверяю будет ли разница с другой функцией начальной позиции
wlesavo: а, ну у меня дуэли тоже не симулируются разумеется, хотя не заметно чтоб у тех кто делает это был сильно лучше винрейт
wlesavo: пока топ какой-то рандомный
wlesavo: я все думаю сделать контроль территории, но это опять же только на долгих играх будет работать
wlesavo: а вот в коротких как то хз
Alex.swift: самое критичное, судя по всему, уход от мин. Если до завтра не успею норм сделать не попаду в легу(
wlesavo: а ну если ухода от мин нет то да
Alex.swift: ну очень слабый пока-что
wlesavo: это пока самое серьезное что можно добавить любому боту
Alex.swift: трекаю мины только если точно нашел врага или он сделал первый взрыв. Так что часто вслепую могу заехать в поле
wlesavo: я где-то с 40 уже начинаю учитывать
wlesavo: минимизацию информации включаю только если опасность мин почти нулевая
wlesavo: либо когда для разных направлений эквивалентные пути
Alex.swift: с 40 если враг делал несколько сайленсов вариантом еще может быть много. Или я что-то не учитываю
wlesavo: ну так я усредняю разумеется
Alex.swift: если у путей кусок хвоста одинаковый, на котором мины ставились, надо их тогда фиксировать
amurushkin: а я вообще всегда карту мин строю. может зря?
amurushkin: другое начальное положение дало практически такой же результат
wlesavo: у меня таймило одно время, но пока плохо определено я смысла большого в карте не вижу один фиг
wlesavo: у меня таймило когда я ее несколько раз за ход строил правда, и вообще не в ней вроде дело было, но ограничение осталось
wlesavo: просто в начале информация важнее, все равно никто тебя просто так взрывать не будет
735487: я за ход строю один раз но при любом числе вражеских положений
735487: сейчас попробую лимит поставить
wlesavo: ну у меня косяк был, я давно поправил и вроде не таймит уже, но смысла там минимизировать путь нет особо все равно
735487: ну у меня пока путь длиною 1 )))
wlesavo: а, ты не ищешь пока
wlesavo: у меня именно поиск пути нормальный дал тогда топ1
wlesavo: ну и до сих пор ощущение что за сыет него держусь, все остальное небольшой подбор параметров и все
735487: да надо сделать хоть какой нибудь. да и еще неплохо было бы научить когда всплывать чтобы на мины не идти
wlesavo: ну если сделаешь оценку пути то просто порог выставить, и учесть нюансы всякие, типа не всплывать пока враг тебя хорошо не обнаружил, или когда у тебя 1 хп
735487: самое интересное что с текущим кодом eulera побеждаю очень часто. чуть ли не 100% винрейт. антиеулер прямо ))
wlesavo: он чето сломал
NightLuna: блииин, реально, можно же заранее посчитать куда из каждой точки можно достать торпедой
wlesavo: так то у него около топ 10 код, просто покрутил параметры немного и пока так оставил
wlesavo: по моему он говорил что ценой частых всплытий уменьшил средний дамаг от мин за игру до 0.7, но это потому что сам убивается всплытиями
amurushkin: ты знаешь ограничить минное поле при сорока положениях дало вроде результаты. давно уже в двадцатку вовнутрь не заходил
wlesavo: и это у него сейчас в сабмите висит :slight_smile:
amurushkin: у меня большинство игр это не бокс с рассчитанной тактикой а мордобой какой то. кто первее )) у кого 1 хп останется )))
wlesavo: NightLuna ну реально это может понадобиться только в случаях нормальных симуляций уже, а когда оно один раз за ход считается то какойто оверкил
amurushkin: о 14. есть шанс зайти в 10 при везении
amurushkin: включайте легу срочно ))))
wlesavo: лол
NightLuna: ой нет, симулировать стрельбу я точно не буду, мне бы ходить нормально научиться
NightLuna: хотя бы
wlesavo: ну ходить это самое сложное
NightLuna: у меня он палится, я вот думаю, может смотреть число допустимых позиций для себя и ходить так, чтобы их было как можно больше
wlesavo: amurushkin смотри в босса не превратись :slight_smile:
amurushkin: я не против чтобы мой код был боссом если меня в легу возьмут сразу ))))
NightLuna: просто если меня находят первую, я часто проигрываю
NightLuna: меня как-то взяли в легу с 12, а босс был 13, вот я радовалась
735487: 16. лучший результат за последние дни
Tunez: А если я прожимаю silence я могу только по прямой ходить или могу сделать + 2 + 2?
wlesavo: просто ограничил поиск?
wlesavo: Tunez по прямой
NightLuna: а можно же после surface начать ходить сразу?
wlesavo: NightLuna если себя так же как соперника трекаешь то это один из вариантов, да
wlesavo: можно
735487: wlesavo: карту стал строить не всегда мин а когда у противника 40 и меньше возможных позиций
wlesavo: ну я про это и спрашивал, да, забавно что это эффективно
amurushkin: что то ХНУРЭ подкачало. не участвуют ))))
NightLuna: а мины которые уже поставлены, их ты запоминаешь?
amurushkin: есть шанс на 2 место по универам выйти
wlesavo: я вам дам 2ое))
NightLuna: у меня изза мин таймауты
amurushkin: NightLuna да запоминаем
amurushkin: теперь главное продержаться чуть больше суток и не упасть ниже 20 ))
NightLuna: а я выиграла тут одну игру в истории, заметила, что ты стреляешь, когда еще точно не нашел, на шару, это выгодно?
wlesavo: у меня порог на урон 0.8 где-то
wlesavo: чак вроде бы стреляет только когда знает точно что попадет, но в целом это маловажно, любой достаточно высокий порог работает
Tunez: А вы просчитываете возм позицию противника?
735487: да
NightLuna: ну а если вообще мимо начать стрелять, это же сильно плохо
735487: если вообще мимо то плохо. хорошо когда стреляешь туда где большая вероятность что он есть
NightLuna: я проигрываю, даже если на меня первую нападают, а если я не туда стрелять еще начну, то всё
wlesavo: порог это средний урон по всем возможным позициям врага
NightLuna: я так пробовала, мне вообще не везет, всегда не ту позицию выбираю
NightLuna: ну вот может он быть в 2 разных точках с одинаковой вероятностью, стрелять или нет?
NightLuna: точки не рядом
wlesavo: нет
NightLuna: а если в тебя уже выстрелил и ты в тупике
wlesavo: ну только если на 2, тогда стрелять
NightLuna: но можно спалиться и не попасть
wlesavo: в среднем выгоднее стрелять чем нет
wlesavo: понятно что много ситуаций, все не захардкодишь
amurushkin: а я стреляю даже если таких точек будет много
amurushkin: главное чтобы плотность попадания было выше 0.7 у меня
wlesavo: ну так и я о том
wlesavo: у меня 0.7-0.8 стояло, разницы не заметил
Uljahn: даже если не попадёшь - отсечёшь сразу много вероятных положения?
NightLuna: я стреляю только если попаду 100 процентно, наверное неправильно это
NightLuna: ага, и противник тоже отсечет)
amurushkin: да если плотность большая и не попал это очень много отсекает обычно
amurushkin: может опять прикрутить сонар ))))
wlesavo: у меня он срабатывает пару раз за игру от силы, но совсем не выключаю
735487: ну я тоже ему приоритет убрал он почти не заряжается
metahom: у меня стреляет на 60% верояности. прикрутить что-ли
dabino: все эти пороги выстрела, коэффициенты - их подбирать - только время терять. 28е поколение генетического подбора параметров... сотни тысяч сыгранных игр... на первом месте турнирной таблицы - дефолтные коэффициенты, с которых все начиналось ((
metahom: )))
metahom: да, всегда после 2го дня игры с коэффициентами прихожу к тому же выводу
wlesavo: жиза, почти не поменялись коэффициенты выставленные из общих соображений
dabino: вот у меня тоже
amurushkin: это всегда так. подобранное наугад почему то круче ))
Uljahn: интуиция прокачана потому что
Tunez: а если я врежусь в остров конец игры?
BorisZ: сразу проигрываешь если врезаешься
BorisZ: если до тебя дошел ход - значит ты еще жив и враг жив, врезался - счет -1
Tunez: А размер поля может быть отличным от 15?
BorisZ: нет, можно считать что жестко задан
Tunez: а почему мы тогда его вводим?\
gybson_samara: потому, что константы зло
BorisZ: да хз, может когда делали то держали в голове что может потом возможны будут разные размеры
Uljahn: BorisZ: напомни, что в первый ход предрассчитываешь? соседей, торпеды и сайленсы для каждой клетки?
Uljahn: и как это всё хранить?
Uljahn: numpy массив объектов замутить?
Uljahn: а, ещё взрывы
BorisZ: сайленсы не стал - неудобно
BorisZ: self.cells = set()
self.nbrs_manh = {} self.explosion = {} self.torpedo_range = {}
BorisZ: мапы просто ячейка : сет
BorisZ: сайленсы все равно каждый раз заново пробегать, решил что проще так
BorisZ: cells & nbrs_manh - это готовый граф
gybson_samara: О многопоточности в одном потоке. Допустим мы запускаем рекурсию для поиска кратчайшей траектории к точке, запуск в потоках позволяет нам прерывать заранее невыгодные потоки и обрубать неверные ветки рекурсии.
gybson_samara: В одном процессоре конечно
BorisZ: ну проведи эксперимент, напиши вариант с потоками и простой, сравни время
BorisZ: но быстрее наверное нагуглить статей про многопоточность на одном проце - уже проверяли тысячу раз думаю
inoryy: да проверяли-проверяли, ничего оно не даёт на СГ
BorisZ: а для поиска кратчайшего пути есть попроце способы, и на взвешенном графе в том числе - дейкста там
BorisZ: если вопрос в поиске путь по своей карте с потенциальными минами
BorisZ: или с уроном
NightLuna: у меня эвристика, если нет пути без мин, то делай surface, в итоге я окружена минами и делаю surface каждый ход, что за пичаль
amurushkin: kovi так раньше тоже делал :) заплывал ко мне на минное поле и самоубивался
Tunez: а когда ты проходишь 4 вершины юзая silence ты их посищяешь?
NightLuna: да
Uljahn: BorisZ: a self.cells что такое?
Uljahn: ой, это объект для всей карты же
Uljahn: спасибо
wlesavo: поставл на трешхолды 1-math.tanh(t/100) вроде даже играет
wlesavo: хуже не стало
BorisZ: Uljahn да сет из всех клеток
735487: hehe а мой еще и выигрывает у wlesavo оказывается )) аж 3 раза
wlesavo: с параметрами играюсь