Chat:Ru/2020-05-10

From CG community
Jump to navigation Jump to search

vrabosh: единственный вариант перечитывать код и чистить.. приводить впорядок. создавать структуру функций итд.

WhiteCrow: Да, другие паки видны только когда их видят паки :)

WhiteCrow: Ну, если выбрался из дерева

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

vrabosh: wlesavo, я смотрю ты хорошо в топе так продвинулся.. расскажи как это у тебя получается? сколко строк кода?

Jokero: получается, когда паки противников под углом сталкиваются, они не видят друг друга?

WhiteCrow: Нет

WhiteCrow: :)

WhiteCrow: Сделал чуть менее агрессивного бота... 15/15

WhiteCrow: Хорошо пошло

zuko3d: есть ощущение, что агрессивно играть тут вообще не выгодно

zuko3d: т.к. нет способа надёжно нападать. тупо не догоняешь врага никогда.

WhiteCrow: Способы есть, я их пока не реализовывал

zuko3d: можно зажимать в тупичке, но это надо чтобы он сам зашёл в тупичок. и он там ещё все зелёнки соберёт

WhiteCrow: А сидел с эвристикой из дерева

zuko3d: т.е. убить можно, но невыгодно

WhiteCrow: Что характерно, во второй сотне оказалось, что новый менее агрессивный бот сильно проигрывает

zuko3d: я делал бота, который сильно агрессивный - в итоге проигрывал, т.к. убить-то убивал, но потом не хватало времени собрать все зелёнки на карте, 200 ходов истекало

zuko3d: ну и пока бегаешь за противником - он собирает, а ты - почти нет, т.к. бежишь за ним

zuko3d: в общем, немного странная пвп-составляющая получилась у игры. Особенно криво выходит с углами. Можно неожиданно сдохнуть и нет шансов это предсказать. Или убить противника при проходе через перекрёсток и даже не узнать этого. В общем, как-то сыровато выглядят правила.

Hamibar: По моему норм. Во первых можно сделать какое-то подобие трекера. Во вторых ты сам решаешь выбрать более рисковый путь с большим выигрышем или менее рисковый. К тому же открывается путь к командным взаимодействиям. Типа один посмотрел что чисто и только после этого пошел другой

Hamibar: Какой-то большой слишком разброс при одном и том же сабмите. То 50 то 150.

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

BorisZ: разрыв в рейтинге в несколько сотых +- 50 мест, в середке может и сотня

BorisZ: в серебре будет меньше народу а игр вроде добавят в сабмите тоже

BorisZ: так что стабильнее будет место

BorisZ: то что код надо переписывать это к бабке не ходи, по крайней мере некоторые части

BorisZ: а то получаются функции в 100+ строчек моментально

BorisZ: или уродцы типа dbl_speed = (2 if pac.speed_left > 0 else 1) + (2 if opp.speed_left > 0 else 1)

Hamibar: лучше все таки не переписывать а рефакторить)

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

BorisZ: а тут может что-то всплывет, что ранше не заметил в куче говнокода

Hamibar: я вот решил переписать код для прошлого контеста) так туда и не вернулся. А ты предупреждал.

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

BorisZ: и абонементы на фитнес на год со скидкой

Hamibar: Да мотивация штука ненадежная.

BorisZ: я читал что на курсере процент завершивших курс от начавших не то 4 не то 6 процентов

BorisZ: точно не помню сколько но совсем мало

BorisZ: а это с учетом того что у части народа это обязательный курс может быть в вузе каком-то

ilt: подскажите плиз переключение типа пака приводит к его оставновке или он делает это на ходу?

Hamibar: Тратит ход на переключение. Соответственно в этот ход не можешь ходить

MadKnight: логично

MadKnight: Hamibar как успехи?

MadKnight: у вас же уже у всех поиск?

MadKnight: вы в поиске как переключение типа делаете?

MadKnight: всм в каком виде добавили в поиск переключение типа?

MadKnight: где в 🎬 Action order for one turn находится переключение типа?

Hamibar: сделал очередность ходов. Пока по времени не прохожу.

Hamibar: Я никак не переключаю

MadKnight: успею я переключить тип, когда противник хочет меня съесть в этот же ход?

MadKnight: это было бы OP конечно

Hamibar: 3.Execute abilities 4.Resolve movement, including collisions.

Hamibar: По идее сначала переключаешь

MadKnight: так переключение типа идёт перед ходом?

Hamibar: потом только оп ходит

MadKnight: т.е. например я камень противник paper

MadKnight: противник рямом со мной

MadKnight: противник выводит ход на меня

MadKnight: а я меняю тип на ножницы

MadKnight: значит я его убью?)

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

Hamibar: порядку операций

MadKnight: этож OP

Hamibar: Почему

Hoggins: на практике так и происходит

dbf: да, именно так и работает. несколько игр смотрел, где меня съедали, поменяв тип в тот же ход, когда я "наступаю"

MadKnight: давайте ничего не делать а просто стоять и менять тип

MadKnight: или идти блочить противника

MadKnight: всеми 3 блочить сначала одного противника

MadKnight: чтобы он самоубился

Hamibar: Ты не знаешь во что он превратиться

Hamibar: хотя

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

MadKnight: в 1 ход

Hamibar: да. Получается можно точно заблочить

MadKnight: новый страт посоны

Hamibar: Но только если у тебя нет кулдауна

MadKnight: трапаем противника

MadKnight: это как если бы в гоночках обе машинки были бы блокерами

MadKnight: а машинка, которую блочат слишком долго, самоуничтожалась юы

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

spaceorc: нет конечно

MadKnight: but a pac can't cross the path of a stronger pac: it will be blocked.

spaceorc: на одной клетке нельзя стоять никаким двум пакманам

Hamibar: ага. Не так прочитал это правило в начале контеста.

spaceorc: в тексте объяснение довольно путаное, но в коде рефери все предельно ясно

Hamibar: это же надо код рефери смотреть :upside_down:

MadKnight: Hamibar пили мой страт короче

MadKnight: в топ выйдешь

spaceorc: редко бывают игры, когда без чтения кода рефери обойдешься...

MadKnight: 100% working hack

spaceorc: ой, все )) эта тактика проиграет любой из топа...

MadKnight: а что топы такого делают?

spaceorc: не бегут на соперника без полной уверенности

spaceorc: некоторые ВООБЩЕ не бегут

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

735487: достаточно просто проверить кулдаун у противника и не наступать на него в этот же ход. а как только переключит то и себе переключать и он уже будет драпать

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

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

735487: spaceorc: в инпутах кулдаун приходит :)

spaceorc: чо серьезно???

735487: да :)

spaceorc: блин!!!

Hamibar: spaceorc видишь топ 2. Ему тактику MadKnight предложил.

Hamibar: Так что лучше запилить

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

Hamibar: amurushkin а зачем мне переключать если я его блокаю

Hamibar: я тоже буду ждать

MadKnight: spaceorc ты думал кулдаун не приходит?)

spaceorc: ага

spaceorc: не посмотрел

MadKnight: как сокращённо этот контест называют?

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

MadKnight: amurushkin как контест сокращённо называется?

Hamibar: я называю PAC но похоже оф названия нет

Hamibar: amurushkin я подумал, что часто еще есть проходы с другой стороны.

Hamibar: Наверное может иногда быть полезной страта. но очень ситуативно

735487: я у себя назвал PacMan

piter239: http://chat.codingame.com/pastebin/02cc95a5-bf02-4e2f-978d-0f4c0568e16e

piter239: Всем привет!:tophat:

piter239: вопрос про стратегию обхода поля, получилось длинно:grinning:

piter239: Буду благодарен за подсказку начинающему

Hamibar: Оптимальная то наверное есть, но ее никто не знает.

Hamibar: Я пока просто бфсом нахожу и выбираю оптимальный. (Не факт, что он действительно оптимален)

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

dbf: Hamibar, а бфс же не будет находить единичные корридоры в стороны, потому что ищет самый короткий?

Hamibar: Я не очень понял, что значит единичные коридоры в стороны. Пути длиной 1?

dbf: если карта такая

dbf: 000000000

dbf: 0000100000

dbf: 111111111

735487: dbf бфсом можно найти не только самый короткий путь а и все из точки

dbf: 0 - стена, 1 - это еда. бфс же не зайдет в единичное ответвление, если ты будешь искать путь длиной, 10, например?

Hamibar: зайдет конечно.

Hamibar: я не задаю какой длины путь

dbf: а, интересно. я думал, генерируется набор одинаковых по длине путей и оценивается

dbf: amurushkin, не понял, все пути из точки в разные точки? или в одну другую?

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

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

Uljahn: хм, в данном случае есть, это да

dbf: да, наверное, можно сравнивать разные пути, если учесть длину,

Hamibar: я думал делать оценку сколько новых клеток этот путь откроет. И учитывать это при выборе. Но пока не запилил.

Hamibar: что-то 50мс стало резко совсем мало(

Default avatar.png Altaire: Самая крутая ничья ;-) https://www.codingame.com/replay/460220476

Uljahn: нот бед

piter239: Спасибо за отклики!

piter239: я не спрашиваю "все детали", ясное дело))

735487: dbf: бфс ищет множество кратчайших путей из точки по всему лабиринту до упора

piter239: что сам сделал в качестве первой попытки - bfs от каждой исходной позиции пака даёт длину пути до любой точки поля.

piter239: точно!

piter239: для (больших) крошек нахожу того пака, который ближе

piter239: сейчас думаю, как поделить поле между паками. Voronoi diagram, видимо

piter239: а вот как сделать _обход_ - пока не знаю.

piter239: ничья да, красивая.

мой текущий код съел бы противника сразу, но я пока speed использую только при наличии больших крошек

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

Hamibar: похоже нужно учиться писать оптимизированный код сразу)

dbf: amurushkin, ну да, я понял ,что можно типа floodfill сделать, чтобы найти пути во все точки, но смутило то, что он будет искать кратчайшие по числу клеток, а это не всегда хорошо

735487: dbf: можно же поменять чуток алгоритм но с весами это уже не бфс а дейкстра или astar наверное. ну или если чуток жадности включить можно и в бфс веса добавить например за переход не по 1 а по 100 и минусовать там врагов или еще как то

Hamibar: Что-то я не понимаю. Интересные решения, которые должны работать не дают результата, а 2х строчные дают :angry:

wlesavo: ;bpf

wlesavo: жиза

wlesavo: я склоняюсь к тому что это потому что руки не из того места

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

Hamibar: wlesavo хорошая версия. Многое объясняет.

Hamibar: Xanrum ну да. Скорее всего там жуки.

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

Xanrum: вчера переписал на переиспользование всех буферов и адресацию в одномерных массивах вместо двумерных. Дало хороший результат - но сегодня открываю теперь код ни читаемый, ни поддерживаемый ни дорабатываемый : (

wlesavo: это да

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

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

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

MadKnight: есть кто с калининграда?

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

MadKnight: особенно если размер кратен 2

MadKnight: например 32

Ivan_Legion: сделай враппер

MadKnight: y*32+x это ваще просто сдвиг на 5

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

MadKnight: особенно если y unsigned

Ivan_Legion: я назвал Get2DId(x,y)

Ivan_Legion: я назвал Get2DId(int x, int y)

Ivan_Legion: и будет тебе счастье

BorisZ: проверок на выход за границу меньше может

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

BorisZ: и да, если строки не кратны машииному слову до еще какая-то арифметика добавится при адресации

Xanrum: во первых - в GO нет двумерных массивов, только массив массивов - со всеми вытекающими по индексации. Но на C# делал так же - проверки границ нет, но там можно по указателю и без проверок будет

MadKnight: а оператор [] в го можно перегружать?

MadKnight: и передавать туда не х у а структурку координаты

MadKnight: я так делаю обычно

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

MadKnight: уууууу

MadKnight: не жди меня в go, Automaton2000

Automaton2000: а в чём смысл жизни?

MadKnight: играть в пакмэна и рекать antisquid'a

MadKnight: (отсылка к диалогам из #world если что)

MadKnight: зачем кому-то нужен go если там нельзя перегружать операторы Automaton2000 ?

Automaton2000: ну я так и подумал

MadKnight: а у списков там тоже list.get(i) ?)

MadKnight: а чтобы вектора сложить, надо писать vec1 + vec2 ?)

MadKnight: vec1.add(vec2) ?)

BorisZ: type Board [N * N] int func (b *Board)get(x,y) - как то так если не путаю синтаксис

MadKnight: в с++ я просто делаю myBoard[pt]

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

Xanrum: там координаты у всех объектом уже хранятся в одном uint16 и сразу по нему берутся данные

MadKnight: зачем в одном uint16 ?

MadKnight: сделай стракчу

BorisZ: перегрузка - дьявольское измышление, поопределяют всяких "№;? операторов потом лазь каждый раз по хедерам

BorisZ: чем словами хуже функцию написать

BorisZ: по скорости то же, зато читаешь и все понятно

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

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

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

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

MadKnight: я не пишу такого, чтобы значение [] было неочевидно

Tecarlo: Можно [] сделать возведением в квадрат!

Tecarlo: Разве не очевидно?

BorisZ: угу квадратик )

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

BorisZ: ну и зарядку по утрам, как без этого

wlesavo: не человек, а человечище!

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

Hamibar: такое мне является только в мечтах

Hiker: товариши, а кто-то знает как посмотреть, за что ты получал CP&

Hiker: и за текущий контест очки начисляются после конца соревнования? просто в описании вроде написано ежедневно

tomatoes: на место в профиле кликни

wlesavo: за текущий в конце

wlesavo: ежедневно за мульти

Hiker: что за мульти?)

tomatoes: https://www.codingame.com/multiplayer/bot-programming

tomatoes: то что без призов и неограниченно по времени (прошедшие контесты)

vrabosh: ну его нафиг, перепишу все с нуля.. максимум что смогу с тем, что есть это 600 место.

wlesavo: ну времени еще много

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

Uljahn: vrabosh: для питонистов, застрявших в бронзе, будет стрим от Icebox, когда сильвер откроют, я вот буду смотреть и делать как там :)

Hoggins: хм, а где идет? :)

Uljahn: что идёт?

Uljahn: будет идти на твиче, скорее всего

Uljahn: Icebox "If CG is okay with it, I can do my classic wood to silver stream on the release of silver

Uljahn: "

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

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

Jokero: Ох уж это диагностика через Console.Error

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

NightLuna: а как ты определяешь главного?)

BorisZ: ну тут уж от фантазии зависит

Jokero: я просто пакам разные конечные цели всегда даю,

BorisZ: ближе к вкусняхе, которого сожрут сейчас и так далее

BorisZ: например

Hamibar: я тоже на это попался)

NightLuna: эвристикой, понятно, у меня пока главный тот, у кого меньше id

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

wlesavo: у меня главный тот кто первым в словаре попался

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

Uljahn: как у рекурса в корабликах

Hamibar: для 4 у меня получается полностью

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

BorisZ: это все без ощенок пока что, если перебирать то оценивать надо как-то то что нагенерил

Ivan_Legion: а как правильно формировать строку для смены формы?

Ivan_Legion: SWITCH + pacId + formId ?

Ivan_Legion: или SWITCH + formId + pacId ?

Razdva122: SWITCH pacId pacType

Ivan_Legion: спасибо

Hamibar: как не хочется сабмитать когда на 30е закинуло.

BorisZ: за промежуточные места плюшек не дают

BorisZ: неделю еще контест, сабмить смелее)

Hamibar: да и в конце все равно запустят всех со всеми.

SqueeCoder: А когда в серебро будут пускать?

BorisZ: League opening: 5/11/20

BorisZ: нажимаешь на лигу вверху справа от таймера

BorisZ: между таймером и ранком

SqueeCoder: Понял, спасибо. Надо значит пилить до завтра что-нибудь, а то 1800 место слишком убого :)

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

Hamibar: ну человек 500-800 наверное пустят

SqueeCoder: значит шансы есть

BorisZ: я бы ставил на 1000, не больше половины точно, но это все гадание )

SqueeCoder: И как часто такие контесты? Классная штука.

BorisZ: вроде раз в полгода обещают теперь, раньше было почаще

Hiker: А почему становится реже?

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

Hamibar: всегда есть мульти

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

Hamibar: если очень не хватает контестов можно туда зайти

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

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

Hiker: а там игры проводятся? или там только самомум можно создавать игры?

BorisZ: райк еще есть 2 раза в году теперь

Hiker: в мульти? ( в старых контестах)

Uljahn: райк - это Russia AI Cup

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

BorisZ: ну только без ограничений по времени и без призов

Hiker: прикольно. в том же раике песочницу замораживают и все

Uljahn: игры автоматом создаются, когда жмёшь сабмит

Uljahn: в мульти

Uljahn: да и в контестах так же

Hiker: топово. типо необходимое число игр, чтобы опеределить твой рейтинг?

Uljahn: угу

Hiker: интерестинг

Uljahn: сначала 10-20 калбировочных игр, следующие уточняют ранг по TrueSkill

Uljahn: *калибровочных

Hiker: все. осталось всех порвать=) то у меня какое-то позорное 250000 место =)

Hiker: в глобале

Uljahn: это быстро фиксится

Hiker: а типо за счет мультиков можно подкачать ранк?

Uljahn: да, особенно за счёт гоночек CSB

Uljahn: чем больше народа в мульти, тем больше очков дают

Uljahn: за хорошее место

Uljahn: можно даже не быть в топе

Hiker: а какой-то профит есть в текущем занять высокое место?

Hiker: или можно сразу в мульти идти?)

Uljahn: в CP учитывают три лучших контеста с дисконтом

Hiker: типо есть коэфициент, за то что вовремя

Uljahn: за контесты отдельные очки

Uljahn: потом суммируются с мульти и другими статьями

Uljahn: типа клэша, гольфа и оптимизаций

Uljahn: кликай в профиле везде, там разберёшься

Xanrum: а зачем нужны CP?

Uljahn: солить на зиму

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

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

Uljahn: да

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

Uljahn: боты ресабмитятся автоматически

Hamibar: https://www.codingame.com/share-replay/460403761 повешу в рамочку. Когда еще что-нибудь подобное случиться!

Hiker: все в бой =) спасибо

Xanrum: эх, еще б работодатели смотрели на этот CP

Hiker: так вот кнопка гет жоб , для кого

Hiker: =)

Uljahn: эйлер жжот как обычно https://i.imgur.com/sLWFbC8.gif

Hiker: это что такое

Hiker: и кто такой эйлер

Uljahn: визуализация бота

Uljahn: эйлер - топовый кодер

Uljahn: eulerscheZahl - 2й по сайто по CP как раз

Uljahn: *по сайту

Hiker: а. да он в раиках бывает

Hiker: я просто там обычно торчал, а тут заскучал, плюс спам на почту =)

Jokero: если пак на скорости проскакивает проход, то он не видит, какие там гранулы?

tomatoes: неа

Jokero: млин

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

Uljahn: и разворот максимум 18 градусов за ход :joy:

tomatoes: вроде планировалось 4 игрока сразу и еще какие-то штуки. но решили убрать

tomatoes: в рефери остатки и из кг ктото писал

Xanrum: респа не хватает для пакманов

piter239: "и разворот максимум 18 градусов за ход :joy:" точно!

помню, полдня пытался понять "что с поворотом?!?"

Hiker: почему мои паки ходят иногда каждый тик, а иногда через тик? при том что я нитро не юзаю. что происходит вообще

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

Hiker: типо если существует хотя бы 1 на нитро, то время ускоряется?

Xanrum: это так неудобно смотреть что тик не равен ходу

Hiker: то что отображается в плеере это ходы?

Hiker: или тики?)

Xanrum: тики

Hiker: и как часто я реально получаю управлдение?

Hiker: управление я получаю видимо разв ход

Hiker: ход = тик если нету ни у кого нитро

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

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

Hiker: это если противник криво написал? и хочет ходить по 1 шагу?) хотя может по 2?

tomatoes: скорее всего

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

Xanrum: да, под нитро а дает на один шаг

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

Xanrum: я так понимаю те самые "топовые кодеры" ничего не выкладывают и их код будет только под конец?

tomatoes: кода скорее всего не будет вообще

Xanrum: почему? они не будут участвовать?

tomatoes: а, я не так понял

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

Hiker: на 0 тике нельзя ходить? но он есть? почему бин этого в правилах нету. ничо ж не ясно

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

WhiteCrow: Он включил ускорение

WhiteCrow: Команда SPEED

Dmitry_Mandzyuk: а, то есть она влияет не только на него но и на меня?

WhiteCrow: Ну в смысле

WhiteCrow: Она влияет только на него

WhiteCrow: Он делает два шага, за тик

WhiteCrow: Ты только один

Xanrum: за тик все же все делают один шаг

Dmitry_Mandzyuk: а точно, теперь понял, спасибо

piter239: как я понял, фишка с ускорением вот ещё в чём: если указать цель в 1 шаге и включить speed, то пакман пойдёт на 1 клетку. А если указать более далёкую цель, то после включения speed он сделает 2 шага к цели - перед тем, как брать следующую команду.

Это просто проверить в самом начале.

piter239: проверил сейчас: https://www.codingame.com/share-replay/460470947

piter239: на 3-м тике красный id1 указывает цель (10,7)

piter239: поэтому на 5-м тике двигается он один, все остальные СТОЯТ. Синие - потому что не используют speed, а красные - потому что указали цель прямо под носом.

piter239: (клёвая тема, кстати - буст полезен, только если ставить далёкие цели :)

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

Razdva122: И буст юзлес получается

MadKnight: а ты ищи дважды ближайшую

Uljahn: ближайшую к ближайшей, но не в направлении назад)

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

Xanrum: под ускорением с жалением ходит на две клетки есложность брать конфеты конце тонеля

Uljahn: Automaton2000: т упрлс?

Automaton2000: automaton2000: а что если кто-то сгенерит случайный токен и получит валидный чужой токен?

dbf: ого, Automaton2000 да ты хакер

Automaton2000: да можно конечно - я ж так простой путь описываю

dbf: Automaton2000 ты контест пишешь сейчас?

Automaton2000: вот я и говорю, что ГА меньше думать заставляет

Uljahn: Automaton2000: попробуй вообще не думать

Automaton2000: но когда у тебя есть

wlesavo: нашел одну фишку в реплеях кови

wlesavo: если на поворотах сталкивается меняет тип так чтобы сам себя съедать

wlesavo: просто и со вкусом

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

MadKnight: я устал кодить

MadKnight: всм за компом сидеть

MadKnight: но я хочу покодить

MadKnight: чё делать?

Xanrum: поспать, встать пораньше и продолжить кодить

MadKnight: так всего 9 вечера

Xanrum: я за эти 4 дня написал кода больше за этот го дна работе : ( уже лапки устали печатать

MadKnight: ты так мало кода пишешь на работе?)

MadKnight: сколько ты кода уже написал тут?)

MadKnight: сколько строк?

Xanrum: на работе ты митингуешь, дейлики, планирования, ретроспективы. Ты обсуждаешь что делать, ставишь приоритеты, ревьюишь код, пишешь ревью за квартал, ставишь ОКР, деплоишь код, пишешь заявки одним админам, другим девопсам. И о боже, наконец только программируешь

Xanrum: сейчас у меня 600 строк, но различные варианты, оптимизизации, рефакторинг

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

dbf: ого

dbf: выпилите аджайл, освободится часть времени :)

Xanrum: но без него манагеры не будут знать что ж делают разработчики

dbf: ну и хорошо, будет меньше поводов для разговора

dbf: а вообще прямо по-больному резанул, работники энтерпрайза почувствуют :)

Dmitry_Mandzyuk: MAdKnight, а ты в контесте участвуешь?

MadKnight: ага

MadKnight: просто пропустил пару дней

Dmitry_Mandzyuk: хм, а я хотел на твоих паках потренить и тебя не нашел

wlesavo: трень на илледане, он говорит у него полностью детерминированный бот

Dmitry_Mandzyuk: да уже пытался)))

Dmitry_Mandzyuk: детерминированный в смысле нахардкоденный чтоли?)))

Hamibar: дает один и тож же результат в одинаковых условиях.

Hamibar: насколько я понимаю

wlesavo: да, правильно понимаешь

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

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

m2bad4u: а противники всегда появиляются симметрично с такими же типами паков?

Hamibar: да

tutubalin: 102 байта, чтобы выйти из вуд2 )

tutubalin: (f=_=>[x,y]=readline().split` `)(g=n=>n&&g(n-1,f())) g(y) while(!g(f(g(f(f())))))print('MOVE 0',x,y)

Dmitry_Mandzyuk: воу, это на каком языке?

tutubalin: JavaScript

Dmitry_Mandzyuk: и второй вопрос как такой код вообще прочитать?

tutubalin: довольно сложно ) надо каждый байт разбирать

Dmitry_Mandzyuk: ну а написать его как? это ж обычный код надо как-то так ужать

ilgiocatore: мне понадобилось где-то 2 минуты, чтобы понять, что первые две строчки это объявление функций

Hoggins: представляешь если авто так думает ))

tutubalin: это называется Code Golf. Сперва берёшь нормальный рабочий код, а затем постепенно отсекаешь от него лишнее

Dmitry_Mandzyuk: это где про 102 байта написано? xD

tutubalin: ilgiocatore только это не две строчки, а одна ) просто чат так разбил

tutubalin: https://pastebin.com/2stsurUV

ilgiocatore: ну и вторая функция это типа просто цикл по сути, не

ilgiocatore: ?

ilgiocatore: он n до нуля

ilgiocatore: который вызывает f()

ilgiocatore: блин, сложные приколы у вас джсеров

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

ilgiocatore: ну а первая читает строчку с инпута и постоянно присваивает значения глобальным переменным x и y

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

tutubalin: да-да )

tutubalin: молодец, разобрал!

tutubalin: а что такое g(f(g(f(f())))) ?

MadKnight: это куча вызовов

tutubalin: это да... лиспом попахивает

tutubalin: а что они делают?

TheCrucial: читраешь паков вначале, потом читаешь все пеллетки. последняя пелетка остётся в x,y

TheCrucial: в неё и дешь

TheCrucial: f() прочитать скоры f(f()) параметры паков g(f(f())) - прочитать всех паков. и т.д.

wlesavo: tutubalin лол неплохо

Uljahn: и ещё места осталось на 999 таких ботов

TheCrucial: ограничение на код 10к симвобов?

Uljahn: 100к

TheCrucial: хехе)

TheCrucial: как ваши делищи

Default avatar.png EugeneYakNN: супер пеллет сколько максимум бывает на одной карте?

tutubalin: кстати, там не 102 байта, а 100. у меня перевод строки за 2 байта посчитался

Uljahn: разве суперов не 4 всегда?

Jokero: ничего не понимаю, если я не видел, как съели 10ку, она продолжает для меня подсвечиваться чтоль и приходить как будто она есть на карте?

Uljahn: не должна

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

Jokero: Они как пользаки, при описании задачи как будто платят за количество букв.

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

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

Uljahn: может, решили упростить дизайн или типа того

Hoggins: это еще одна не очевидная штука. Заметил только когда меня стали враги ловко на них ловить

ashelkov: ну что как у кого успехи/ целый день сегодня ковырл нормальное уклонение от врагов

wlesavo: ого, аж на шестое запушили

ashelkov: ну это всяео лучше чем на 340) поздравляю

wlesavo: да у меня примерно один и тот же код сабмитится на 10-40, а ща чет запушили

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

ashelkov: ну а мне не рерайт - а нормально фич допилить план на контест - в топ 100 заехать (оптимистично так)

DualU: Всем привет. У меня одного есть проблемы с инпутом в пакман-игре?

tutubalin: какого рода проблемы?