Chat:Ru/2020-09-08
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!!! ))
QuantumQQ: блин, никак в легендарную в CSB не прыгну. Осталось 2 балла
MadKnight: QuantumQQ покажи реплей
MadKnight: depthzer0 обрадовался
depthzer0: а то, на полгода вышел, как-будто и не выходил
MadKnight: меня тоже долго не было
QuantumQQ: https://www.codingame.com/replay/485836169 из идей, только учесть столкновения между своими подами, т.е. пропускать лидера.
735487: QuantumQQ: у большинства в топе один едет а другой мешает противнику
MadKnight: QuantumQQ сделал буст одной из машинок на старте?
MadKnight: помогает
QuantumQQ: дефендером в легендарной займусь, мне же тут босса надо пройти, а он без дефендера нормально все делает в голде.
MadKnight: QuantumQQ а как ты выбираешь куда ехать?
QuantumQQ: следующий чек поинт, если близко к нему, то следующий, чтобы раньше поворачивать начал. И угол к цели смещаю - чтобы в дрифте шел. Или что имеешь виду?
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 лет ))
QuantumQQ: сразу на математику попадаешь. Какой край ближе и с какой стороны
magaiti: у меня вот тоже идея есть, но не знаю как оформить правильно
magaiti: https://www.youtube.com/watch?v=e4L0jmanCYU
gsomix: DinuBrat, гитхаб утверждает, что я пишу код с 2011. А до этого, наверное, я и не существовал вовсе!
DinuBrat: Ну вы жёсткие )
ConstantBolzmann: не ну да потому как надо тогда первый круг типо в кеш сувать
ConstantBolzmann: и после первого круга оптимизацию краев врубать
ConstantBolzmann: чтобы были известны состояния следующие за текущей целью
magaiti: да, координаты кругов запоминать полезно
ConstantBolzmann: жесть осенило
magaiti: чтоб заранее выруливать на следующий
ConstantBolzmann: это если в лоб
ConstantBolzmann: так вот чо нейронка делает
ConstantBolzmann: запоминает это всё
QuantumQQ: траектории разные будут
ConstantBolzmann: да потомучто бортануть могут
ConstantBolzmann: но тут главное просто получить все окружности
magaiti: у нее внутре нейронка (с)
ConstantBolzmann: чтобы просчитывать
magaiti: запили нейронку, сразу в топ легенды выйдешь
magaiti: всех генетиков за пояс заткнешь
ConstantBolzmann: щас попробую посчитать для начала нейронку не получится
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: класс нейрон
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: Или долгая тренировка
QuantumQQ: имхо, нейронки слишком сложно. Несколько моделей поведения прописать уже будете в легенде. Мне вот защитника лень писать. Хочу за счет маневрирования попасть. А там уж гуля рванина.
Uljahn: нейрон для понтов, как обычно. можно ещё блокчейн из одного чейна сделать)
magaiti: генетический алгоритм с однм геном
MelnikovIgor: От нйрона там только имя класса
MelnikovIgor: нейрона*
Uljahn: QuantumQQ: можно и без защитников в леге в топ-250 зайти
MelnikovIgor: Но с защитниками кайфовее, когда видишь как твой бот творит чудеса
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: Спасибо
DiscoDemon_858d: http://chat.codingame.com/pastebin/e05389fc-27b7-4848-bc09-64bd95e8488b
DiscoDemon_858d: подскажите пожалуйста, как оптимизировать? на GO
Uljahn: это для чего?
Uljahn: не Horse Racing случайно?
DiscoDemon_858d: нет, A contribution by Crypticsy
DiscoDemon_858d: начальный уровень, просто стресс тест не проходит
Uljahn: Van Eck's sequence?
Uljahn: я со словарём решал
Uljahn: хэшмап
Uljahn: 5 строчек на питоне :/
MadKnight: а почему не 1 ?)
Uljahn: не стал сильно ужимать, читать тяжело :)
MadKnight: отмазы
Uljahn: это вам на руби можно ужимать, а на питоне нельзя, потому что читаемость важна
MadKnight: питон для руби как perl для питона?)
vrabosh: жесть упрешься иногда в косяк какойто и все..
vrabosh: вроде задача недели решена, но гдето с единицой проблемы. то на единицу больше, то меньше
Uljahn: такая же фигня была, пришлось костылём подпереть
vrabosh: а там полюбому коротенькое решение есть через логорифмы*
Uljahn: проверяю в конце, сходится ли условие, что у алисы меньше цифр, чем у боба, если не сходится, то вычитаю страничку)
Uljahn: решил пазл на го :)
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: а потом перебирай вообще все возможности