Chat:Ru/2020-04-12

From CG community
Jump to navigation Jump to search

tutubalin: Лайфхак. Взял скриптик, который склеивает несколько Java-классов в один файл. Поставил расширение для синхронизации CG с файлом.

tutubalin: Редактирую код в Idea, всё нормально структурировано, а не длинная портянка - и сразу в CG доступна исполняемая версия.

tutubalin: Единственная проблема пока - не поддерживаются пекеджи. Поэтому все классы в одной папке.

Valdemar: 3pt до босса, так близко итак далеко)

tutubalin: золотого босса понерфили что ли?

tutubalin: как-то у меня место резко вверх пошло

wlesavo: не, как его понерфят

wlesavo: но за вчера никто в легенду не прошел

tutubalin: хмм...

tutubalin: я просто так со 157 места поднялся до 94

Uljahn: а я со 170-го до 50-го

Uljahn: а, вы про голду

tutubalin: может быть забанили клонов?

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

tutubalin: ну не до такой же степени! )

Uljahn: а ты ресабмитил потом?

wlesavo: может изменение в птс небольшое, а изменение в месте большое изза того что много близких по птс

tutubalin: сейчас уже новую версию засабмитил

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

tutubalin: нейронку тренировать

Uljahn: чтобы тренировать, сима нужна

Uljahn: или миллион реплеев

tutubalin: рефери ж есть

amurushkin: у всех свои нюансы. я вот думаю бросить пытаться пройти в легу ))

tutubalin: да лаааадно

tutubalin: ещё 7 дней

tutubalin: обычно весь контест 7 дней идёт

tutubalin: времени полно ещё

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

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

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

tutubalin: я вчера был на двести-каком-то месте в серебре

tutubalin: сегодня уже 64 в золоте

BorisZ: съел чего-то не то, ясное дело

tutubalin: прогресс!

tutubalin: джава кстати ничо так. я почему-то её боялся

wlesavo: я со смазкой в 10ку влажу, но не долго осталось

735487: я от джавы отказался из за сборщика мусора

MadKnight: это когда он зависал на минуту, очищая твои 700МБ мусора?

MadKnight: и таймил твоего бота?

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

MadKnight: что значит обсирать

MadKnight: ты же сам сказал - сборщик мусора

MadKnight: и я сказал - он собирал мусор

MadKnight: что не так?)

BorisZ: сборщик так топорно не работает, worldstop очень редко бывает, надо специально стараться

MadKnight: ну может у тебя там в каждой симе по паре объектов новых создавалось

MadKnight: или массивы какие копировались

MadKnight: new GameState() делал

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

735487: го напиши хоть один мульти на java для начала и покажи как надо

MadKnight: надо было создать 1 GameState и копировать в него

MadKnight: всм 1 копию основного GameState

MadKnight: и просто её перезаполнять

MadKnight: neumann так делал в StC

735487: я кучу контестов написал на java а перед этим еще кучу на питоне. и я не жалею что перешел на плюсы

MadKnight: в общем делать не new GameState(orig) а orig.CloneInto(testState)

MadKnight: и там задать всем массивам capacity

735487: мэд иди пиши на java кто не дает? а для контестов это нервотрепка

MadKnight: neumann кстати тоже с java на плюсы перешёл

MadKnight: специально плюсы выучил

MadKnight: так многие здесь делают

735487: вот и я пошел и выучил плюсы

tutubalin: я пошёл выучил плюсы, но удовольствия не получаю

tutubalin: все эти поинтеры, референсы

tutubalin: компилятор постоянно ругается

tutubalin: а если не ругается, то ещё более страшно. значит где-то прокосячил

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

tutubalin: но вот в Ocean of Code самый долгий ход - 10ms

735487: я просто пытался написать симу для MeanMax и генетику. получился пиздец :)

tutubalin: сборщик мусора лагал?

735487: да включался все время неожиданно и симы проседали всегда сильно.

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

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

Uljahn: процы троттлились или типа того

metahom: кстати. сейчас решил замерить время своего хода. у мееня частенько превышает 50 мс. иногда даже больше 100 выходит. почему бота не грохают?

Uljahn: после первого инпута начинаешь замерять?

Uljahn: в Mean Max часто наблюдал, как с 10-15 мс на ход внезапно подскакивало до 50-60 мс на пару ходов, и дальше опять 10-15 мс, сборку мусора отключал, не помогало

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

metahom: а откуда надо? после первого инпута?

Uljahn: да

Uljahn: во время первого инпута исполнение твоего бота приостанавливается, мне кажется, и исполняется код соперника + рефери

metahom: о, так лучше. спасибо

amurushkin: wlesavo подскажи как твой босс сало заряжает? никак не подстроюсь то твой чаще его делает то мой :)

amurushkin: понаблюдал за боссом кучу всего у себя поменял :)

amurushkin: теперь быстрее заряжает ракету :)

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

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

735487: у меня теперь баги вылезают типа сайленс на 5. выполнил 2 одинаковые команды ))

735487: о награрока пропихнули

BorisZ: wlesavo что ты по поводу убирания мин объяснял, напомни пожалуйста

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

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

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

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

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

wlesavo: что-то в этом духе

735487: там есть неприятный кейс. когда пути были во 2 и 4 ряду. а мины в 1 и 5. то в 3 будет происходить коллапс при таком рассчете

wlesavo: ну в общем от всех фантомов надежно избавиться тяжело

wlesavo: не уверен что возможно

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

tutubalin: возможно

735487: ухты сабмитнул и забыл. открываю а я там 2 ))

735487: против босса 7-2 не в мою пользу ((

735487: 0,95 разница. буду ждать наверное может запушат

tutubalin: у меня мины надёжно обрабатываются. даже если стоят рядом.

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

735487: мы немного про другое

tutubalin: и убираются тоже

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

735487: вот смотри как бы убирешь если чел ставит мину в точке 2,2 и потом в точке 4,2. он там сам стоит. потом проиходит взрыв в точке 3,2. из какого пути ты мину уберешь?

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

tutubalin: > из какого пути ты мину уберешь? из обоих

735487: из обоих убираешь и теряешь 1 мину из внимания. у тебя ее нет а она на поле

tutubalin: я из этой траектории делаю две: в одной мина на 2,2 убралась, в другой на 4,2

tutubalin: квантовая механика )

tutubalin: и там и там мина как бы и есть и как бы и нет

Valdemar: amurushkin правильно делать сплит на несколько состояний, в каждом из которых убирать по 1 мине

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

735487: а я убираю одну из них как повезет )))

Valdemar: тогда трекер может сломаться

Valdemar: может быть ты убрал не ту

735487: это зависит на карту минного поля а не на положение противника

Valdemar: ааа, ты по минам противника не отслеживаешь?

Valdemar: у меня это все в одном месте

Valdemar: по трекеру минное поле строится

735487: отслеживаю но вроде перестал терять уже

735487: а вспомнил

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

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

Default avatar.png Tunez: А вы прям полностью пути противника храните или только где он может быть?

735487: полностью

tutubalin: в первой версии на питоне хранил только конечную точку

tutubalin: сейчас конечная точка + матрица посещённых мест + список мин

Default avatar.png Tunez: сайленсом нельзя положить по памяти?

tutubalin: нет

tutubalin: отсечение получается лучше в этом случае

Default avatar.png Tunez: а список мин откуда берешь?

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

tutubalin: соответственно сама мина где-то по соседству

Default avatar.png Tunez: но как бы не знаешь где даже противник находится

Default avatar.png Tunez: расположении мин не будет слишком рандоным?

735487: постепенно варианты сужаются и противник обнаруживается

Default avatar.png Tunez: хотя, если всё отсекать может и получится добыть информацию

Default avatar.png Tunez: да, спасибо

Default avatar.png Tunez: а можно ещё один вопросик

Default avatar.png Tunez: вы писали стрельбу по себе?

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

Default avatar.png Tunez: Опа, ребятки из итмо

Valdemar: Да, несколько лет назад закончил его)

Default avatar.png Tunez: а строк кода уже сколько вышло?

Valdemar: 2,5к

Valdemar: я скриптом собираю из нескольких файлов, поэтому не экономлю

Valdemar: там еще самописные вектора и прочее

Default avatar.png Tunez: уф

Default avatar.png Tunez: макс путь кто-то ищет?

Default avatar.png Tunez: Самописные вектора - звучит жестко

Valdemar: максимальный путь тут не нужен

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

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

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

**tutubalin скрестил пальцы )

tutubalin: ого. а меня наоборот пропушили до 24 места уже

Default avatar.png Tunez: а как вы несколько исходников в один объединяете?

Valdemar: самописные скрипты

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

Default avatar.png Tunez: а сайленс посещает клетки на своём пути?

735487: да