Chat:Ru/2020-09-08

From CG community
Jump to navigation Jump to search

gsomix: Доброе утро.

gsomix: Округления — та еще головная боль с паззлах с непрерывным пространством.

gsomix: Я предпринял очередную попытку решить Escaping the cat, но пока очень неаккуратно реализовал.

MadKnight: gsomix а в мультиплееры играешь?

gsomix: MadKnight, пока успел только в Tron Battle поиграть.

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

MadKnight: gsomix а у тебя чат лагает?

gsomix: MadKnight, не замечал.

MadKnight: а у меня чёт лагает

gsomix: Я дома обычно с внешнего клиента сижу. Всегда работает хорошо. :)

MadKnight: gsomix а ты какой алгоритм в троне юзал?

gsomix: MadKnight, реализовал диаграмму Вороного, как предлагали в описании. И шагал в сторону увеличения скора.

gsomix: Ничего умного.

MadKnight: gsomix а как насчёт предсказания противников?

gsomix: MadKnight, пока не делал.

MadKnight: gsomix так сделай

gsomix: MadKnight, хорошо, когда время будет. :)

mykeich: брось все и сделай:)

MadKnight: вот именно, зачем тебе другие дела ваще?

735487: MadKnight: ты свой алгоритм доделал?

MadKnight: доделал, но потом придумал метод получше

MadKnight: а текущий кое-как осиливает глубину 5

MadKnight: кривенько

MadKnight: возможно, с параметрами надо ещё поиграться

MadKnight: amurushkin у меня чат жутко лагает, го в дискорд?

MadKnight: Automaton2000

Automaton2000: но я не знаю что это

WhiteCrow: Здарова парни

WhiteCrow: Когда контест?

gsomix: WhiteCrow, обещают в середине ноября.

**WhiteCrow ушёл назад в спячку

WhiteCrow: Блин, как так-то

MadKnight: lol

MadKnight: го в другие мульти тренить

MadKnight: тут же наклепали кучу community multiplayer'ов

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

Uljahn: ещё в телеге есть полудохлый канал

gsomix: Дискорд, конечно, во всех отношениях удобнее, чем чат на сайте.

Uljahn: не зря они народ заманивают туду, один минус - не интегрируется с сайтом

gsomix: Я бы сказал, что это плюс — меньше левого народу проходит. Но не скажу, потому что в дискорде совсем пусто. :upside_down:

gsomix: Чат в телеге ближе к совсем дохлому.

Uljahn: во время контеста будет оживление

gsomix: В дискорде? Это хорошо.

gsomix: Там сразу заводят отдельный канал?

Uljahn: везде, и в телеге тоже

gsomix: Ок. Я в телеге стараюсь в чатах не сидеть, потому что все рабочие чаты там. Разграничение помогает меньше прокрастинировать. :)

Uljahn: да, в дискорде есть раздел Past contests, там как раз бывшие контестные каналы

Uljahn: в принципе, канал уже есть #🍃fall-challenge-2020

gsomix: А, точно. Проглядел. :)

MadKnight: чё кстати кодишь gsomix ?

gsomix: MadKnight, на CG? :) Вчера пытался Escaping the cat решить.

MadKnight: gsomix а из PvP ?

gsomix: MadKnight, я по совету BorisZ хочу во что-нибудь из последних контестов поиграть. Думал вечерком CalM попробовать.

gsomix: Еще у меня есть недописанная сима для CSB.

depthzer0: CSB!!! ))

Default avatar.png QuantumQQ: блин, никак в легендарную в CSB не прыгну. Осталось 2 балла

MadKnight: QuantumQQ покажи реплей

MadKnight: depthzer0 обрадовался

depthzer0: а то, на полгода вышел, как-будто и не выходил

MadKnight: меня тоже долго не было

Default avatar.png QuantumQQ: https://www.codingame.com/replay/485836169 из идей, только учесть столкновения между своими подами, т.е. пропускать лидера.

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

MadKnight: QuantumQQ сделал буст одной из машинок на старте?

MadKnight: помогает

Default avatar.png QuantumQQ: дефендером в легендарной займусь, мне же тут босса надо пройти, а он без дефендера нормально все делает в голде.

MadKnight: QuantumQQ а как ты выбираешь куда ехать?

Default avatar.png QuantumQQ: следующий чек поинт, если близко к нему, то следующий, чтобы раньше поворачивать начал. И угол к цели смещаю - чтобы в дрифте шел. Или что имеешь виду?

Default avatar.png QuantumQQ: коэффициенты я вручную вот подбираю

depthzer0: а как там в CSB вообще всё? чем обычно пользуются?

depthzer0: в описании смотрю NN, генетика. PID какой-то

MelnikovIgor: Я перебором с генетикой

depthzer0: а что за PID не знаешь?

ConstantBolzmann: https://ru.wikipedia.org/wiki/ПИД-регулятор

depthzer0: и "перебором" - что надо перебирать?

Uljahn: перебирают обычно возможные варианты действий для себя и противника

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

depthzer0: извините за тупые вопросы, не специально ))

Uljahn: нормальные вопросы

Uljahn: не про жль и кути)

MelnikovIgor: Перебирать пути полета подов)

Uljahn: угу, различные траектории

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

depthzer0: а PID этот - это как раз реализация переборов этих?

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

Uljahn: он без перебора реализуется

MelnikovIgor: https://en.wikipedia.org/wiki/PID_controller

ConstantBolzmann: lfdfq yf rbnfqcrjv

ConstantBolzmann: давай на китайском

Uljahn: т.е. управляющее устройство, на вход подаётся задающее воздействие (цель) и сигнал обратной связи - положение, скорость

Uljahn: могу на киктайском

ConstantBolzmann: тогда сразу на кантонском давай

wlesavo: эх, надо бы тоже гоночками заняться ато у меня там сломаный бот в голде с -3vel :slight_smile:

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

BorisZ: типа вдруг на следующих ходах найдется что-то хорошее, что до сих пор не нашлось

DinuBrat: Привет всем)

Uljahn: :wave:

depthzer0: запустил CSB (я так понял это первое какое-то задание с 1-м подом) - это такое управление??!?!?! Оо

Он просто передаёт точку куда надо попасть и скорость? )))

Uljahn: да

Uljahn: но есть нюансы

depthzer0: И из точки 4000 3000 не может попасть в 3000 3000 ? ))))

depthzer0: Вот это бот! ))

Uljahn: может, но не сразу

depthzer0: Automaton2000 ты тоже можешь, но не сразу?

Automaton2000: короче суть в том что я не вижу в лидерборде

depthzer0: ОК, забавно. попробую попробовать

depthzer0: Вот здесь уже надо PID запилить?

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

magaiti: гоночки до сих пор самая популярная игра?

Uljahn: в плеере есть настройка - debug mode

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

depthzer0: ух ты!

gsomix: magaiti, гоночки просто в квесте первой предлагают.

BorisZ: magaiti она новым игрокам предлагается по умолчанию

DinuBrat: что за гоночки?

magaiti: csb

DinuBrat: пасиб

Uljahn: coders strike back

MadKnight: DinuBrat ты же в них играл?

DinuBrat: нет

DinuBrat: MadKnight

MadKnight: они же идут как первый пазл для новичков

MadKnight: это как onboarding

MadKnight: а ты пазлы делаешь просто?

DinuBrat: я сразу в cc пошёл

MadKnight: ну гоночки - это тоже pvp, только чуть побольше чем 10-15минутные сражения

MadKnight: там пилишь бота под мультиплеер игру чтобы бот всех рвал

DinuBrat: круто

MadKnight: не хочешь затестить?

DinuBrat: та я зашёл но не понимаю

MadKnight: чего не понимаешь?

DinuBrat: пх

MadKnight: с шариком справиться не можешь?)

DinuBrat: типо он должен по всем чекпойнтам двигаться ?

MadKnight: ага

DinuBrat: ок next_checkpoint_x это выходит координата чекпойнта

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

Uljahn: ага, когда один проходишь - дают координаты следующего

MadKnight: ага

MadKnight: именно так

DinuBrat: ок щас сделаю что-то

Uljahn: можно тупо в центр чекпоинта ехать для начала

MadKnight: ну тебе это и предлагают

Uljahn: если включить debug mode, то увидишь линию к текущей цели

DinuBrat: выходит диапазон чекпойнта достаточно велик

Uljahn: в смысле радиус?

DinuBrat: да да

depthzer0: я так понял, надо чтобы твои текущие координаты совпали с чеком

depthzer0: так то он над ними пролетает

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

Uljahn: можно даже только краешек зацепить

Uljahn: координаты машинки - это как раз координаты её центра, т.е. можно пока машинку рассматривать как точку

ConstantBolzmann: а как почитать множество точек с центром в координате?

MadKnight: почитать?

ConstantBolzmann: посчитать

Uljahn: что за множество точек?

MadKnight: как может быть центр у точки?

Uljahn: центр окружности мб

Uljahn: и точки - это типа пиксели?

ConstantBolzmann: есть координата х и игрек, можно посчитать множество точек входящих в окружность с опр радиусом и данным центром

MadKnight: так их бесконечное множество

ConstantBolzmann: нет

MadKnight: так тогда их не существует

Uljahn: если целые, то можно посчитать

depthzer0: Вот он у меня пролетает над центром и нифига http://prntscr.com/udop6a

MadKnight: тебе придётся самому их расположить и считать сколько получилось вместить

ConstantBolzmann: вопрос вполне конкретен если есть радиус и известен центр окружности

MadKnight: так ты его уже взял ранее depthzer0

depthzer0: Надо чтобы в какой-то момент было ровно 3000 3000 для х y пода?

Uljahn: depthzer0: кликни Replay and Share в плеере, и скопируй линк

MadKnight: depthzer0 троллит, Automaton2000 ?

Automaton2000: но гугл не так реагирует на слово basic

ConstantBolzmann: смотри есть координатная сетка x и y если есть координатная сетка то есть множество точек которые пересекает x и н

735487: ConstantBolzmann строго математически твое множество задается неравенством. а количество вещественных точек в нем бесконечно

MadKnight: ConstantBolzmann чё ты так непонятно объясняешь? точка с радиусом - это окружность

depthzer0: https://www.codingame.com/replay/485864310

MadKnight: а, я понял, ты хочешь посчитать число пикселей в окружности?

MadKnight: число целых координат?

735487: расстояние от центра до точки меньше или равно радиусу

ConstantBolzmann: да получается сеток ага

MadKnight: можешь прогнать алгоритм заливки окружности

depthzer0: эх, сейчас удйду, не прочитаю ответ...

depthzer0: или в дискорде видно будет? тут история короткая

magaiti: пи эр квадрат как бы

ConstantBolzmann: ну да

MadKnight: magaiti давненько не видели тебя

MadKnight: magaiti ты пофиксил 75мс в гоночках?

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

DinuBrat: не ну пока я тащу (туториал пока) пхпхп

735487: depthzer0: ты не тот чек переезжаешь

MadKnight: ConstantBolzmann а тебе зачем?

magaiti: хз, что за 75мс

magaiti: мой бот вроде норм работает

ConstantBolzmann: так в машинках можно считать по радиусу точек и лететь в самый оптимальный

depthzer0: тут трудно кмк другой переехать:

print(str(next_checkpoint_y) + " " + str(next_checkpoint_y) + " 5")

Uljahn: у тебя баг

MadKnight: так ты выводишь y дважды

735487: :))

depthzer0: семён семёныч!!! )))

mykeich: надо было два Х, а лучше три

depthzer0: всё, помчал, спасибо

ConstantBolzmann: да на икс сммени)

Uljahn: ConstantBolzmann: ты про это? https://stackoverflow.com/questions/8647024/how-to-apply-a-disc-shaped-mask-to-a-numpy-array

ConstantBolzmann: вы щас написали можно по краешку пролететь

ConstantBolzmann: этот краешек просчитать можно

735487: да центр пода должен пересечь круг

ConstantBolzmann: он же в радиусе с заданым цуентром

ConstantBolzmann: вернее не так

ConstantBolzmann: можно получать координаты центра считать множество пикселей и наступать только на оптимальный

gsomix: ConstantBolzmann, уже вышел в золотую лигу в гоночках?

735487: это уравнение пересечения прямой и окружности.

ConstantBolzmann: пойду посчитаю интересно

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

ConstantBolzmann: так поедет в центр

ConstantBolzmann: а нам надо чтобы ехал не в центр

735487: куда скажешь туда и поедет

ConstantBolzmann: а в оптимальную точку окружности

magaiti: оптимальная - это какая?

magaiti: ближайшая?

ConstantBolzmann: так щас нарисую

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

735487: ну у меня умеет ездить по краям чека но не факт что это оптимально

gsomix: Я удивлен, что вы все еще пытаетесь нормально общаться с ConstantBolzmann. :)

735487: gsomix: мы терпеливые :)

Uljahn: gsomix: забанить всегда успеется :)

Uljahn: сам же жаловался, что чат полуживой

ConstantBolzmann: https://imgur.com/a/OMuEuoN

gsomix: Uljahn, я про дискорд. :)

Uljahn: ConstantBolzmann :joy:

Uljahn: что за траектории у тебя? )))

ConstantBolzmann: мышкой криво будет если рисовать как на доске

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

ConstantBolzmann: мой под пока едет в центр

DinuBrat: как буст включить , извиняюсь

Uljahn: пишешь строку "BOOST" вместо ускорения

ConstantBolzmann: а надо чтобы по краешку ближайшему ехал.

magaiti: ближайшему к чему?

ConstantBolzmann: к поду

ConstantBolzmann: они все в одной системе координат

magaiti: ближайший к поду - это который на пути к центру

magaiti: ты думай лучше

ConstantBolzmann: а значит там сегменты надо вычитать

Uljahn: там же инерция, скорость не гасится мгновенно, поворот на 18 градусов за ход максимум

ConstantBolzmann: тоесть смотреть откуда едем

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

ConstantBolzmann: это всё укладывается в эту идею

ConstantBolzmann: я про это и хочу и сказать

gsomix: бгг

ConstantBolzmann: просто знаний не хватает

Uljahn: может, тебе вместе с vrabosh школьный курс повторить? :)

magaiti: как запрограммировать "все укладывается в эту идею"?

ConstantBolzmann: нет я пойду просто для интереса сначало посчитаю

gsomix: У меня есть идея получше. Ехать нужно оптимально. Просто знаний не хватает. :)

ConstantBolzmann: я рисунок отправил

ConstantBolzmann: там вполне наглядно же просматривается идея

DinuBrat: Извиняюсь за такие глупые вопросы но какой у вас "стаж" програмирования ?

DinuBrat: (из интереса спрашиваю )

ConstantBolzmann: можно просчитывать от чекпойнта окружность и ехать не в центр а на краешек

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

735487: если считать программированием школьную программу то больше 20 лет ))

Default avatar.png QuantumQQ: сразу на математику попадаешь. Какой край ближе и с какой стороны

magaiti: у меня вот тоже идея есть, но не знаю как оформить правильно

magaiti: https://www.youtube.com/watch?v=e4L0jmanCYU

gsomix: DinuBrat, гитхаб утверждает, что я пишу код с 2011. А до этого, наверное, я и не существовал вовсе!

DinuBrat: Ну вы жёсткие )

ConstantBolzmann: не ну да потому как надо тогда первый круг типо в кеш сувать

ConstantBolzmann: и после первого круга оптимизацию краев врубать

ConstantBolzmann: чтобы были известны состояния следующие за текущей целью

magaiti: да, координаты кругов запоминать полезно

ConstantBolzmann: жесть осенило

magaiti: чтоб заранее выруливать на следующий

ConstantBolzmann: это если в лоб

ConstantBolzmann: так вот чо нейронка делает

ConstantBolzmann: запоминает это всё

Default avatar.png QuantumQQ: траектории разные будут

ConstantBolzmann: да потомучто бортануть могут

ConstantBolzmann: но тут главное просто получить все окружности

magaiti: у нее внутре нейронка (с)

ConstantBolzmann: чтобы просчитывать

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

magaiti: всех генетиков за пояс заткнешь

ConstantBolzmann: щас попробую посчитать для начала нейронку не получится

Default avatar.png QuantumQQ: как обучить нейронку?

Default avatar.png QuantumQQ: и таймаут есть

Uljahn: QuantumQQ: могу предложить почитать https://github.com/pb4git/Nash-DQN-CSB-Article

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

Uljahn: угу

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

magaiti: 1 нейрон это PID

Uljahn: и долго ждать?

ConstantBolzmann: да похоже

ConstantBolzmann: долго

ConstantBolzmann: если без потока в консоль то секунда

Uljahn: на один нейрон?

ConstantBolzmann: да

magaiti: ненуачЁ

ConstantBolzmann: плюс зависит от точности пока он просчитает к точности ждем получается там в зависимости от задачи либо милионы либо тысячи(сотни) итераций

Uljahn: очевидно, это какой-то особенный нейрон

ConstantBolzmann: простой нейрон

Uljahn: на транзисторах что ли?

gsomix: На лампах.

gsomix: Теплый ламповый нейрон.

ConstantBolzmann: класс нейрон

Default avatar.png QuantumQQ: против тактик опонентов как обучать? через логи игры. Ну как-то тут проект на пару лет я смотрю вы затеяли :))

Uljahn: можно реплеи скачивать, а можно самому с собой играть как AlphaZero

magaiti: https://media.giphy.com/media/y7kvOYLzas6Ag/giphy.gif

ConstantBolzmann: http://chat.codingame.com/pastebin/b10a6744-47d7-44ac-b466-bd3193ef92fd

Uljahn: на реплеях обучать - это supervised/imitation learning, а самому с собой - это reinforcement learning, насколько я понимаю

ConstantBolzmann: вот Ульян если интересно прогони

ConstantBolzmann: http://chat.codingame.com/pastebin/7903eb1a-417b-423e-bd6a-1f34d9d190f9

ConstantBolzmann: это рубли

Uljahn: и что выучивает нейрон? какая у него предсказательная ценность?

ConstantBolzmann: рубли переводит в доллары)

gsomix: бгг [2]

Uljahn: xD

magaiti: если по завтрашнему курсу, то неплохая способность

Uljahn: +

ConstantBolzmann: ну можно вывести адресом

ConstantBolzmann: и будет в онлайне менять

ConstantBolzmann: это нейрон переведенный с шарпа)

ConstantBolzmann: из туториала)

ConstantBolzmann: https://www.youtube.com/watch?v=k4FkXs-J3VM&t=1s

Uljahn: лул

MelnikovIgor: По сути обучение коэффициента, тут и нейрон не нужен

MelnikovIgor: Генетика может даже лучше зайти)

MelnikovIgor: Или долгая тренировка

Default avatar.png QuantumQQ: имхо, нейронки слишком сложно. Несколько моделей поведения прописать уже будете в легенде. Мне вот защитника лень писать. Хочу за счет маневрирования попасть. А там уж гуля рванина.

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

magaiti: генетический алгоритм с однм геном

MelnikovIgor: От нйрона там только имя класса

MelnikovIgor: нейрона*

Uljahn: QuantumQQ: можно и без защитников в леге в топ-250 зайти

MelnikovIgor: Но с защитниками кайфовее, когда видишь как твой бот творит чудеса

Default avatar.png QuantumQQ: хз. Я вот смотрю, даже у топов, частенько защитники мешают лидеру.

magaiti: кайфово когда генетику научишь щит включать, и она начинает одним подом второй на чекпоинт запуливать

DinuBrat: ЕЕЕ бронзовая лига )

Uljahn: :thumbsup:

gsomix: ConstantBolzmann, завязывал бы ты смотреть некачественные видео на ютубе. :)

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

gsomix: Я хотя бы надеюсь, что он не донатил автору на патреоне.

ConstantBolzmann: у меня получилась площадь чекпойнта 950 303,75

ConstantBolzmann: пирквадрат

gsomix: Это в попугаях?

MelnikovIgor: И зачем тебе площадь?

MelnikovIgor: Треш какой то

ConstantBolzmann: в плозади примитива имеет точки

Uljahn: я думал, все уже привыкли...

MelnikovIgor: Это один и тот же чел с разных акков сидит?

ConstantBolzmann: в площади примитива есть точки

Uljahn: угу

MelnikovIgor: Я думал он обиделся смертельно на нас давно уже

gsomix: MelnikovIgor, это не мешает писать.

Uljahn: так ему больше идти некуда

Uljahn: везде банят сразу)

ConstantBolzmann: а как ты узнаешь сколько точек у примитива

Uljahn: зачем?

MelnikovIgor: Это для какого контеста нужно?

ConstantBolzmann: чтобы пролетать по краю

MelnikovIgor: кек, радиуса достаточно

Uljahn: лучше бы луч кастовал

MelnikovIgor: Даже если дискретизирвоать

ConstantBolzmann: так у примитива есть точки

ConstantBolzmann: из посчитать можно

Uljahn: у окружности есть радиус, можно найти точки касания лучей и окружности - это и будут края

ConstantBolzmann: а чем радиус поможет?

MelnikovIgor: Все точки круга, это те, которые в пределах радиуса

MelnikovIgor: Бери любые

MelnikovIgor: Их там много

ConstantBolzmann: да но мне надо иметь все точки заданного центра координат

Uljahn: зачем?

ConstantBolzmann: чтобы я летел куда хочу в примитиве

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

ConstantBolzmann: Ульян смотри тут же есть координатная сетка

Uljahn: для этого не нужны все точки

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

ConstantBolzmann: я могу лучем смотреть угол и лететь в оптимальнуцю точку чекпойнта

Uljahn: как?

ConstantBolzmann: для этого надо знать все точки чекпойнта

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

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

Uljahn: *не по прямой в точку

ConstantBolzmann: под всегда нахзодится на прямой

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

ConstantBolzmann: просто точка будет не центр а ближайшая

Uljahn: ну, попробуй. но мне кажется, что ничего не получится :)

ConstantBolzmann: мы на 2д проекции

Uljahn: покажешь реплей потом

ConstantBolzmann: попробую конечно интересно

gsomix: Что там, анонс контеста сейчас будет в дискорде?

MelnikovIgor: С чего так решил? В сентябре планировали?

gsomix: Анонс же. Не начало контеста. :)

gsomix: Контест где-то в ноябре запланирован.

Uljahn: [CG]Thibaud (09/02/2020) mid November. Official update to come soon

gsomix: Просто [CG]Thibaud что-то активно пишет в чат с анонсами.

Uljahn: это наверное как раз апдейт будет

gsomix: А, ну я дата появилась. 12 ноября.

gsomix: https://www.codingame.com/contests/fall-challenge-2020

Uljahn: в дискорде мутят самодельный семидневный контест

Uljahn: скорее всего, по уже выпущенному мульти, но это не точно

gsomix: > The contest will happen in the existing game arena

же

MadKnight: о, я помню как этот @Crypticsy спрашивал у меня как такое замутить

MadKnight: он так-то для своего уника делал

MadKnight: он даже сделал внешнюю leaderboard чисто для своего уника

DinuBrat: Ребят , я тут с вопросом

MadKnight: каким таким

DinuBrat: как узнать работает ли это или нет

DinuBrat: if abs(x-next_checkpoint_x)<800 and abs(y-next_checkpoint_y)<800:

       thrust=20

DinuBrat: и вообще есть смысл в этом ?

MadKnight: у чекпоинта радиус 600

MadKnight: у машинки обычно скорость 300

DinuBrat: да но он же по инерции

MadKnight: рандомить очень редко будет

MadKnight: и плюс у тебя же есть nextCpDistance

MadKnight: зачем ты сравниваешь иксы

MadKnight: лол

DinuBrat: а лол

DinuBrat: я не видел дистанцию

DinuBrat: Извиняюсь

MadKnight: я про то что у тебя машинка с такой скоростью может за ход прыгнуть с distance=900 до distance=590

DinuBrat: и типо смысла мало или скорость ещё убавить?

MadKnight: типа перепрыгивает твои 800

MadKnight: за ход

MadKnight: а если и нет, то на ход всего попадает

MadKnight: и ты всего 1 ход делаешь 200

MadKnight: 20

MadKnight: а почему ты ещё не вычел скорость из чека?

DinuBrat: Хпхп веришь я не понял про какой чек

DinuBrat: из консоли ,

Uljahn: чек == чп == чекпоинт

Uljahn: ещё cp (checkpoint)

DinuBrat: спасибо

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

Uljahn: чтобы компенсировать заносы

DinuBrat: хм интересная идея спасибо тебе за этот перевод )

depthzer0: ёхууууу, я уже во втором дивизионе деревянной лиги, и это только просто y на x исправил )) что-то будет!

DinuBrat: И тебе MadKnight за помощь

Uljahn: у меня даже картинка есть древняя, надо её пофиксить, а то сложно разобраться https://i.imgur.com/HyCgPxh.png

MadKnight: к успеху идёте посоны

MadKnight: немного не так Uljahn

DinuBrat: Пх есть такое

MadKnight: машинка бустится по заданному направлению после того как её переместило по инерции

MadKnight: и получается, что она бустится немного мимо

MadKnight: а когда делаешь -1vel, то машинка бустится как раз в чек

DinuBrat: блин сложна сложна ) извиняюсь в свои 17 лет не могу понять картинку

Uljahn: забей

depthzer0: я в свои 78 тоже плохо понимаю ))

DinuBrat: Если и в правду 78 до дань уважения вам )

DinuBrat: Хы

depthzer0: дань? ... где-то были реквизиты для донатов

DinuBrat: пхпх

MadKnight: https://sun9-25.userapi.com/SyJgN8NrH8xo_cDJim8KyXMMPQJSRvRWyWH9ow/nwNCv_q1Sd8.jpg

MadKnight: Uljahn DinuBrat depthzer0

DinuBrat: Ого

depthzer0: так а по хорошему под гонки симу надо делать?

MadKnight: в топе леги

depthzer0: физика опытным путём познаётся? масса например болида

MadKnight: масса=1

MadKnight: с щитом = 10

MadKnight: в голде в описании это есть

depthzer0: т.е. до голда можно не парится?

depthzer0: *не париться

MadKnight: до голда вообще можно на одном только -3vel дойти

depthzer0: что это?

MadKnight: вычитаешь 3 скорости из чека

DinuBrat: тобишь 3 хода

DinuBrat: и ещё 1 вопросик вычитать из кординаты y или из обоих,

Uljahn: из координаты x вычитаешь скорость vx

Uljahn: её показывают в debug mode, посчитать можно как разность координат между ходами

DinuBrat: Спасибо

Default avatar.png DiscoDemon_858d: http://chat.codingame.com/pastebin/e05389fc-27b7-4848-bc09-64bd95e8488b

Default avatar.png DiscoDemon_858d: подскажите пожалуйста, как оптимизировать? на GO

Uljahn: это для чего?

Uljahn: не Horse Racing случайно?

Default avatar.png DiscoDemon_858d: нет, A contribution by Crypticsy

Default avatar.png DiscoDemon_858d: начальный уровень, просто стресс тест не проходит

Uljahn: Van Eck's sequence?

Default avatar.png DiscoDemon_858d: да

Uljahn: я со словарём решал

Uljahn: хэшмап

Uljahn: 5 строчек на питоне :/

MadKnight: а почему не 1 ?)

Uljahn: не стал сильно ужимать, читать тяжело :)

MadKnight: отмазы

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

MadKnight: питон для руби как perl для питона?)

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

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

Uljahn: такая же фигня была, пришлось костылём подпереть

vrabosh: а там полюбому коротенькое решение есть через логорифмы*

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

Uljahn: решил пазл на го :)

Default avatar.png DiscoDemon_858d: пытаюсь

DinuBrat: а делать -1 вел только при каком угле ?

DinuBrat: больше 90?

Uljahn: лучше делать -3Vel всегда

Uljahn: при угле больше 90 просто ускорение сбарсывай на ноль

Uljahn: *сбрасывай

DinuBrat: и ещё 1 вопрос

vrabosh: ааа как меня выбешивает этот пазл

DinuBrat: вел это смотреть по скорости или смотреть по кордам

Uljahn: вел - это приращение по координатам по сравнению с прошлым ходом

DinuBrat: спасибо

DinuBrat: может вывезу эту бронзу хе)

Uljahn: ты был в позиции 0, 0 ход назад, приехал за ход в 100, 50, твоя скорость vx=100, vy=50

DinuBrat: хотя благодаря такому фидбэку без сомнений

Uljahn: т.е. надо хранить координаты с прошлого хода

DinuBrat: Хорошо сейчас пойду писать )

Uljahn: ты офигеешь, как машинки носиться будут, с дрифтом как пр)

Uljahn: как про)

DinuBrat: хпхп теперь я буду знать как понять если я всё правильно сделаю

gsomix: Как мило, в CalM есть starter kit.

TimeIsOut: Получил Python3 Addict (не горжусь), а из бронзы в CSB не могу выкарабкаться(

gsomix: TimeIsOut, есть много других игр. :)

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

TimeIsOut: Я просто POFW решал, скорее всего пропустил глазами.

TimeIsOut: POTW*

gsomix: Надо бы тоже получить Addict ачивку, а то чё эт я. :thinking:

TimeIsOut: :thinking:

735487: меня тут как то торкнуло я решал на всех языках по 3 штуки )) вот думаю продолжать до 7 или не надо ))

vrabosh: 98 - 100, ну разве здесь не логично 99?

vrabosh: почему у него ответ 98?

Uljahn: по условию

Uljahn: у алисы не может быть больше цифр, чем у боба

Uljahn: если 99, то у алисы 4, у боба 3

vrabosh: да, 98 включительно

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

TimeIsOut: Wood 1, я теперь высококачественное дерево :sunglasses:

Uljahn: :thumbsup:

DinuBrat: Promotion to Silver League уууу

Uljahn: :smiley:

Uljahn: ну чё, есть дрифт?

DinuBrat: ага

DinuBrat: сюда кидать можно риплэй?

Uljahn: конечно

DinuBrat: https://www.codingame.com/share-replay/485905160

DinuBrat: крч через час написано что бустанёт на силвер

wlesavo: кто будет в комьюнити контест?

Uljahn: какой там мульти?

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

Uljahn: я зарегался, в принципе

wlesavo: пока не анонсировали

wlesavo: в день старта же

Uljahn: DinuBrat: like a pro

Uljahn: прямо в голду

ConstantBolzmann: он едет по касательной у него

ConstantBolzmann: ага

DinuBrat: надеюсь

ConstantBolzmann: у тебя по касательной едет потомучто

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

DinuBrat: извини но я не понимаю что ты хочешь сказать этим?

ConstantBolzmann: дебаг включи

DinuBrat: включён

ConstantBolzmann: посмотри куда ведет у босса вектор и куда твой

ConstantBolzmann: и где ты пересекаешь окружность

DinuBrat: ну и

DinuBrat: я этого и добивался

ConstantBolzmann: ну и все

DinuBrat: ну и спасибо )

DinuBrat: а так спасибо огромное Uljahn типо

ConstantBolzmann: отсюда следует что если построить касательную и пересечь по ней окружность она для поворота пересечет ефективный сегмент окружности

DinuBrat: помог понять что да как

Uljahn: только вот в голде всё сломается)) там новый формат инпутов, карту дают сразу, скорость дают и две машинки

DinuBrat: о я видел вроде там типо 2 против 2

DinuBrat: ну 2 твои машинки и 2 соперника

Uljahn: да

DinuBrat: ну тогда интересно

DinuBrat: типо зная заранее маршрут

Uljahn: если не лень будет переписать, то можно быстро пофиксить, обе машинки на -3Vel

Uljahn: половина ботов в голде - сломанные

DinuBrat: та перепишу пока горю желанием

TimeIsOut: Сколько Boost расстояния проходит?

Uljahn: 650

TimeIsOut: О, супер, спасибо

Uljahn: это прибавка к скорости

DinuBrat: типо я относительно недавно вообще изучаю питон и пока очень интересно всё потыкать поизучать )

DinuBrat: попрактиковаться все дела :slight_smile:

Uljahn: да, тут суперинтересно тыкаться, я 5-й год залипаю, тоже на питоне

DinuBrat: Наманааа

DinuBrat: Я так-же хочу

TimeIsOut: Блин, почему моя машинка может не сдавать Boost&

Uljahn: а как ты выводишь его в аутпут?

TimeIsOut: Наряду с координатами пишу Boost

gybson_samara: TimeIsOut значит уже сдавала

Uljahn: один буст на гонку даётся

Uljahn: каждый следующий буст даёт просто максимальное ускорение, т.е. 100

Uljahn: в леге 200

Uljahn: а там вроде BOOST надо писать, не?

ConstantBolzmann: а как вы радиус считаете?

TimeIsOut: Может и правда сдавала, сейчас покумекаю.

ConstantBolzmann: если есть касательная значит есть и радиус)

Uljahn: радиус в условиях написан

TimeIsOut: Uijahn я так и пишу, просто в чате так ответил)

ConstantBolzmann: радиус чекпойнта

ConstantBolzmann: а да вижу соответствует

Uljahn: TimeIsOut: включи debug mode и посмотри speed, должен быть скачок во время буста

ConstantBolzmann: блин а я сам посчитал радиус)

ConstantBolzmann: :grimacing:

Uljahn: :rolling_eyes:

DinuBrat: долго мучался?

ConstantBolzmann: неа)

DinuBrat: я так считал дистанцию

ConstantBolzmann: ну 600 похоже на правду

DinuBrat: наверное )

DinuBrat: а ты сравни )

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

ConstantBolzmann: я посмотрел его реплей просто и понял что да можно и не держать точки чекпойнта

ConstantBolzmann: но лучше о них знать

ConstantBolzmann: ты типо топишь за инерцию

ConstantBolzmann: едем влево вектор строим вправо

Uljahn: не топлю, это такой движок игры

ConstantBolzmann: а я представляю еслибы я ехал на машинке

ConstantBolzmann: и видел чекпойнт

ConstantBolzmann: то я бы врятли бы ехал по касательной

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

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

ConstantBolzmann: я как раз нарисовал сегменты себе

DinuBrat: всё убрал пару костылей и код более читаем

DinuBrat: не даёт покоя что я записывал приведущие координаты в масив

DinuBrat: то что*

Uljahn: это второй вариант попасть в голду

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

ConstantBolzmann: ну кеш да

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

DinuBrat: ну сохранять типо также в масив и как распределять типо y и ч

DinuBrat: x*

DinuBrat: это выходит в 2 масива

ConstantBolzmann: 1 милион в плозади чекпойнта(

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

DinuBrat: и типо вычитывать через 1

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

DinuBrat: хм умно

Uljahn: типа cp_coords[(cp_x, cp_y)]

DinuBrat: угу

TimeIsOut: Переменная distance показывает расстояние от чека до чека или от корабля до чека?

DinuBrat: от корабля

DinuBrat: Ладно всем удачи )

TimeIsOut: До списки)

MadKnight: TimeIsOut

TimeIsOut: ?

TimeIsOut: Прости за поздний ответ, если ты ещё тут, играл в Циву

MadKnight: TimeIsOut а в какие игры здесь играешь?

TimeIsOut: Пока только в CSB, не пробовал другие

MadKnight: TimeIsOut а в какую лигу вышел?

TimeIsOut: Wood 1, корплю по поводу Boost.

magaiti: до легенды не нужно ничего кроме эффективной езды по чекпоинтам

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

ConstantBolzmann: для меня это откровение

MadKnight: ConstantBolzmann ты в обычные гоночки не играл?)

ConstantBolzmann: я относительно ксб

ConstantBolzmann: наверно нет

MadKnight: ConstantBolzmann так там же так же дрифтуют на поворотах

MadKnight: рисуют дугу своей траекторией

MadKnight: ConstantBolzmann ты же ещё тут?

TimeIsOut: блин, пробую крестики-нолики, код уже на 45 строк питон

MadKnight: как ты собираешься их пилить TimeIsOut ?

MadKnight: на питоне

MadKnight: он же медленный

TimeIsOut: я тут условности строю

MadKnight: всмысле

TimeIsOut: ну, я пытаюсь пока хотя бы в бронзу выйти

TimeIsOut: поэтому пишу код для игры на 1 из 9 полей

MadKnight: ты можешь просто перебрать вообще все возможности

MadKnight: а первый ход захардкодить в центр

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

TimeIsOut: так как не всегда ты первый ходишь

MadKnight: так ты ифай

TimeIsOut: я этим и занимаюсь)

MadKnight: а потом перебирай вообще все возможности