Chat:Ru/2020-08-24
gsomix: gtj, зачем ты нам показываешь перепечатки туториалов? :)
gtj: окей на дпейст скину в след раз
gtj: слушай может ты вкурсе как получить вершины буфера из блендера я не пойму загуглить
gtj: не пойму как загуглить такое вообще
gtj: из ув хочу получить координаты вершин на туториале написано он как то это сделал
gtj: не понимаю как это проделать
735487: https://blenderartists.org/t/how-to-see-vertex-coordinates/420220
vrabosh: зацените как сдела Dungeons and Maps
vrabosh: понятный код получился? или неоч?
gtj: оказалось на деле проще ща проверю
gsomix: vrabosh, где код? :)
gtj: вставь в консольный шутер лабиринт побегаем)
gsomix: gtj, используй assimp для загрузки моделей. И не оффтопь здесь больше, пожалуйста.
gsomix: gtj, ты есть в телеграме? Я могу тебе посоветовать чат по компьютерной графике и разработке игр.
gsomix: А здесь давай паззлы и мульти обсуждать.
vrabosh: gsomix в пазле Dungeons and Maps в разделе питон
vrabosh: я ему уже говорю, что он бы мог в телеге или вк беседу создать, и новички бы судовольствием бы его слушали и задавали вопросы
vrabosh: знаменитым сталбы.. как раз такие общительные люди и введут каналы. а он время впустую на нас тратит
vrabosh: gtj , группу вк создаешь. и беседу к ней.. и от имени групы вд ругих группах отвчаешь людям на вопросы.. так за год у тебя актиность вырастит.. а там уже вк сам будет рекомендовать
gsomix: vrabosh, чтобы посмотреть код, мне сначала нужно самому решить ее на питоне? :)
vrabosh: gsomix , да:)
gsomix: Ок, я пока не планировал писать на питоне. :)
vrabosh: а на чем?
gsomix: C# и F#. Это то, что я лучше всего знаю.
vrabosh: чтото мне так ленико решать в последнее время эти пазлы
gsomix: Возьми перерыв.
vrabosh: я давно и не решал..
vrabosh: как то был месяц, где почти все на изи решил
vrabosh: сегодня про дикораторы прочел да и вообще ооп изучил.. остались метаклассы..
vrabosh: так ащущение, что читал, что не читал.. особо мало что в голову зашло.. как программлю в старом стиле так и программлю..
vrabosh: ну чуть совсем начал ооп применять.
vrabosh: ооп надо либо сразу начать использовать, либо идти на фирму.. и там получется понять на самом деле всю мощь ооп
vrabosh: хотя может еслиб на юнити и прочем программил, может быть и понял.
vrabosh: хотя мне кажется на ООП только на с++ надо программить, потомучто другие языки и так медленые.
vrabosh: ну и java наверно и подобные с#
735487: ну на Java есть все условия как раз
Uljahn: vrabosh: мне кажется, лучше использовать распаковку, чем через индексы присваивать: ty, tx = way.get(m[y][x])
Uljahn: "if not (ty+tx)" - вот это место не понял
735487: это тоже самое что tx=ty=0 наверное
Uljahn: ооп надо в мультиплеерах применять, а в пазлах обычно оверкил
tutubalin: amurushkin если tx == 1, а ty == -1, то не то же самое
735487: ну тогда либо ему такое не встретилось либо это хитрая задумка какая то
tutubalin: vrabosh старайся не гольфить раньше времени. лучше наоборот пиши как можно более многословно. хотя too verbose - это тоже плохая практика (обратный полюс к гольфу), но на начальном этапе это лучше гольфа
Uljahn: угу, хитрые задумки лучше снабжать комментариями или вводить промежуточную переменную с "говорящим" именем, чтобы сделать код самодокументируемым
tutubalin: мне встречался код что-то типа: c = a>b ? true : false;
Uljahn: я недавно у себя в BotG такое встретил :joy:
tutubalin: я поржал. но один знакомый начал мне объяснять, что это наоборот очень красиво, повышает читабельность, понижает шанс ошибки
Uljahn: if a>b: c = True else: c = False ))
gsomix: tutubalin, да, тут главное не перегнуть. :) А то можно начать аккуратно описывать доменную модель, да так и не закончить.
735487: у меня в продакшен коде от какого то индуса был код которые байты в строку превращает xxКb или xxMb строк на 15 ))
735487: на джаве индусский код бывает встречается даже что то типа bool.toString() == "True"
vrabosh: amurushkin Uljahn поправил) и хитрые задумки тоже)
gsomix: vrabosh, теперь всем показывай. :)
vrabosh: tutubalin я не гольфю, я стараюсь читабельынй код короткий сделать, т.е. логику короче, чтоб понятенй было.. просто не всегда понимаю как красиво.
vrabosh: gsomix, незя наверно.. суть же в том. чтобы все решали а не копипаст
gsomix: Там вроде бы задача на реализацию, без хитростей.
gsomix: Кроме той, что нужно проверять, не попал ли в цикл. :)
vrabosh: tutubalin поэму и спрашиваю, понятен код как есть.. потомучто мне длиные реализации не понятны которые там. кроткие хоть както можно осилить прочесть.
Uljahn: теперь вроде норм, плюсанул
Uljahn: мне лень было упрощать код, взял обычный флудфил и нампай))
vrabosh: питон он прикольный, на нем надо фишки сокращения знать.. они причем читабильность повышают
gsomix: Uljahn, на CG для питона доступен numpy?
Uljahn: конечно
gsomix: Интересно.
vrabosh: и матматич библиоетки доступны
Uljahn: https://www.codingame.com/faq
Uljahn: и пандас, правда не понятно, зачем
vrabosh: тут если без перебора задача, то их можно красиво реализовывать и быстро
gsomix: А для OCaml, судя по форуму, никак не добавят альтернативную стандартную библиотеку. :)
gsomix: "Стандартная" стандартная библиотека в OCaml не очень хорошая. :)
vrabosh: я понял что нампи как массив не стоит использовать, если не будешь над этим массивом всякие операции математич делать в большом обьеме
Uljahn: правильно
Uljahn: хотя 2D карты удобно в массивах хранить
Uljahn: если слишком часто не дёргать, то не должно слишком ударить по производительности
735487: вот в питоне чего не хватает так это нормальных массивов
gsomix: А какие с ними проблемы?
735487: ну насколько я знаю нельзя как в плюсах просто обьявить a[5][6]
Uljahn: https://docs.python.org/3/library/array.html
Uljahn: но я бы лучше нумпай использовал, чем эти полумеры
vrabosh: amurushkin в питоне сколько угодно уровневые массивы
vrabosh: Uljahn надо скоро начать документацию читать, я даж не знал что столько методов у списка)
Uljahn: vrabosh: списки списков - это не массивы, если что
Uljahn: хотя при определённых условиях могут быть похожи
gybson_samara: amurushkin нампи же
Uljahn: наверное, он имел в виду стандартную библиотеку, а там только array, который что-то среднее между списком и ndarray из нампи (который по сути уже не питон, а си)
gybson_samara: ну извините, в C++ стандартно в языке вообще ничего нет почти =)
gybson_samara: есть та же STL написанная на C
Uljahn: ну так питон знаменит своими "батарейками" (куча либ в стандартной поставке)
Uljahn: кажется, я где-то читал обсуждение, почему массивы не нужны в питоне - типа будут дублировать функционал с нампи
wlesavo: блин, SA проходит все тесты в марслендере, а два валидатора фейлит
Uljahn: симуляцию написал?
Uljahn: и коллизии?
wlesavo: да давно еще, только ничего не работало толком, проверял проверял, вроде все норм. украл коллизии из симы марчетты
wlesavo: стало лучше, но все равно хз, скоринг мож надо как-то улучшать
wlesavo: ну тут даже не са, просто жадная эволюция, не уверен что это в принципе должно работать
Uljahn: а, ты оптимизационный квест пилишь?
Uljahn: ппц, episode 2 (да и 3) прошёл на простенькой формуле
vrabosh: http://chat.codingame.com/pastebin/5228feb5-0778-4092-9b44-c5a42966b16f
vrabosh: Поясните по задачки Robot show что не так делаю?
vrabosh: почему во втором примере simple он хочет 20 ходов. вверху показал как у меня ходит.. 2 = X, -1= <, 1 = >
wlesavo: Uljahn ну я в идеале хочу потом в оптиме побороться, пройти то наверное можно, но я подозреваю что где-то у мен ятаки косяк, на первом ходу 65к сим, и при этом улучшение решения всего 40 раз происходит
vrabosh: но тоже самое для первого и последнего норм работает
vrabosh: http://chat.codingame.com/pastebin/4c8b8013-4ff3-44d6-a96d-7c2a3478555c
vrabosh: вот это для example
vrabosh: тут прально дает
vrabosh: может гдето недопонял задачу
Uljahn: может, там нечётное расстояние где-то?
wlesavo: это что значит?
vrabosh: Uljahn и что с того что нечетное?
Uljahn: это я про robot show
wlesavo: а, блин
Uljahn: wlesavo: а первоначальное решение эвристически ищешь или рандомом?
wlesavo: рандом
wlesavo: мож и правда надо эвристику
wlesavo: но все равно странно, тут должно хватать так-то что бы просто призеление посчитать
Uljahn: vrabosh: хм, и правда...
Uljahn: дебаг у тебя нечитаемый, сделай строками с L и R вместо -1 и 1
wlesavo: лол https://www.codingame.com/share-replay/483442971
vrabosh: http://chat.codingame.com/pastebin/b772690c-6e69-4826-a2af-4cec77490957
vrabosh: вот все ок здесь 1 вариант
vrabosh: http://chat.codingame.com/pastebin/7a2044ae-b98c-4936-8354-b13879b9aef1
vrabosh: второй вариат
vrabosh: выдает 22
vrabosh: http://chat.codingame.com/pastebin/90f447d6-66c1-46d3-ba69-86b87c4f6669
vrabosh: вот не все копернул предыдушь
vrabosh: хотя уже вижу, Х в послед штуках не там стоит... когда наглядно понятей)
Uljahn: вот именно
vrabosh: наверно под L должен стоять
Uljahn: наверное, там вообще не должно быть Х, когда RL рядом, на следующий ход они просто в LR перейдут
vrabosh: я врое делал с rl -> lr тож не зашло, но тогда без дебага делал
vrabosh: походу когда они рядом стразу стоят, надо либо их метами менять, либо х ставить на Л
vrabosh: придется куча условий делать. думал короткий код получится
Uljahn: не местами менять, а разворачивать, т.е. они проходят 0.5 расстояния до соударения, разворачиваются и ещё 0.5 проходят, оказываясь на тех же координатах
vrabosh: надо както сделать, чтоб ход пропускали?
vrabosh: надо учитывать четное не четное реально
Uljahn: направление-то они меняют
Uljahn: покажи дебаг с RL -> LR
Uljahn: удивишься, когда решишь и посмотришь решения, эта задача не на симуляции вообще)
vrabosh: http://chat.codingame.com/pastebin/7b5a6450-4470-43d0-a2cd-6c091e14787c
vrabosh: уже 19, но там в первом ходу х сделался. надо исправить
Uljahn: угу
vrabosh: походу не тот алгоритм выбрал.. сложноватый намудреный
vrabosh: всетаки они ход постоят должны без дела
vrabosh: я уже хз, что не так
vrabosh: http://chat.codingame.com/pastebin/7d536ba4-79e6-4b41-a00c-2263b7dde394
vrabosh: http://chat.codingame.com/pastebin/ebfc9f1e-0ef1-49f8-8dd8-b3d6c083764c
vrabosh: и так и так сделал
Dmitry_Mandzyuk: ребята, подскажите, есть кольцевой буфер, один поток читает в этот буфер, второй поток из буфера сохраняет в файл, и получается первый поток догоняет второй, может есть варианты это чтение/запись сделать иначе?
Pyhesty: это ты про осциллограф?...
Dmitry_Mandzyuk: да
Pyhesty: какой язык?
Dmitry_Mandzyuk: с++
vrabosh: кароче там еще последний влюбом случае должен быть <
Dmitry_Mandzyuk: сначала подумал, что запись опережает чтение, понадобавлял флагов
Dmitry_Mandzyuk: а ситуация не изменилась, увеличил размер буфера, время догоняния увеличилось)))
Uljahn: вставь задержку на чтение))
Dmitry_Mandzyuk: а само чтение нельзя трогать иначе осц данные пропустит
vrabosh: жесть, так тесты проходят, а сабмин не проходит
Uljahn: т.е. на сохранение в файл
Pyhesty: я больше по шарпам, там в аналогичной ситуации я использовал очередь, передавал в очередь указатели буферов, которые читал с USB и создавал новый буфер, на с++ я бы рекомендовал stream но чую на твоих 250Мгц это будет тормозить...
Pyhesty: тебе бы на https://www.cyberforum.ru/ спросить...
Dmitry_Mandzyuk: спасибо, я там зарегистрирован, попробую спросить, но там не сильно любят отвечать
Pyhesty: ты выяснил, что у тебя за микросхема USB в устойстве?
Uljahn: Dmitry_Mandzyuk: нельзя ввести указатель на конец данных или счётчик считанных байтов, чтобы читать из буфера до указателя (до счётчика) и засыпать на небольшую паузу?
Uljahn: раз уж всё равно в разных потоках
Pyhesty: это утопия, у него гонится до 500МБайт данных в секунду, он физически не может это протощить через процессор... это моё мнение... а уж тем более на каждый чих делать проверки... не кольцевой буфер утопия... нужно обмениваться указателями на буфера...
Uljahn: а, первый поток догоняет второй
gtj: Ульян ослик генерит бесконечность так проще
Uljahn: а частоту понизить нельзя?
Pyhesty: gtj - это аналогично приёму данных по 10Гбитному интерфейсу, валится 1.2Гбайта в секунду только успевай перекидывать по памяти... так же и тут по идее...
Uljahn: либо делать выборку данных с шагом
gtj: надо кароче приблуду как в ослике
Pyhesty: если с шагом, то не реализуется режим осциллографа peak-detector - можно пропустить гличи в сигнале
gtj: нужен тавкой же типо ослик но который принимает на этой скорости
Uljahn: gtj: не флуди бессодержательными сообщениями
vrabosh: вот что значит зациклится на задачи которую придумал.. и не увидеть банального:)
vrabosh: http://chat.codingame.com/pastebin/10af3d0f-f493-4265-a90e-b39e2734dfe8
gtj: есть генератор а есть тот кто принимает генератор
vrabosh: просто тупо максимальную диагональ вывести надо было)
gtj: мультиплексор мб или чото такое
Pyhesty: как делать такие ссылки? ))
Uljahn: постишь более 4-х строк прямо в чат
Uljahn: автоматом сворачивает
gtj: Pyhesty тогда смотри а как обьяснить как разработчик софта реализовал вывод на екран 1 к 1 сигнала?
gtj: мне кажется есть хитрое чтение данных которое не ве читает а по формуле и собирает сигнал
gtj: на 10 секунде такого чтения сигнал все точнее и точнее
gtj: тоесть пропускает 1/3 сигнала мб
Pyhesty: так осциллографы не работают, осциллограф должен иметь возможность захватить один единственный сигнал, который может прийти в случайное время и быть длительностью наносекунды... то есть по идее в режиме normal он должен успевать проверять весь буфер на соответствию порогу, после чего принимать решение о захвате буфера...
gtj: все это попахивает асемблером
vrabosh: решите эту задачку Robot show
gtj: https://iu4.ru/edu/211001/sem11/kurs/shpe_rpz_11sem.pdf
vrabosh: она прикольная... интересно получится увас сделать так как надо
gtj: ну вот теорема котельникова
vrabosh: Uljahn у тебя изначально как полчилось?
gtj: а где теорема котельникова там и дст и ффт
gtj: мгновенные значения ряда есть дискретные отсчеты сигнала
gtj: могу перевесмти на русский язык
gtj: надо считывать компоненту сигнала и распаковывать на лету
Uljahn: vrabosh: хз, я не сабмитил первоначальный вариант
wlesavo: ее, решился марслендер
wlesavo: и с небольшой модификацией третий тоже, будем считать что тоже гештальт закрыл, раза три уже возвращался
735487: на удивление не с 1 захода решил пазл недели. пришлось баги фиксить :)
wlesavo: amurushkin а для cotr валидаторы известны?
wlesavo: сильно замарачиваться не охота, если ссылочкой нет то буду онлайн делать просто
735487: это про кольца? я если честно не знаю. я и решение спер с инета
Uljahn: wlesavo: в приват тебе кинул, посмотри, только я не уверен, что это оно))
Uljahn: кто-то в общаке в чат кидал однажды
wlesavo: о, спс, вроде похоже
Uljahn: я решение для зомбей спёр, на питоне уж больно сложно симулировать, мало сим, как обычно
Uljahn: хотя, недавно кто-то уберэвристику кидал
735487: для зомбей и я спер. тоже было лень )) но их я когда нибудь планирую сделать честно самому
Uljahn: идти к средней точке между зомби и человеком, которого точно успеваешь спасти
wlesavo: ну cotr я придумал интересную штуку для поиска, пэтому прямо интересно в оффлайне попробовать
Uljahn: с учётом экспертных правил?
wlesavo: не, пока без
Uljahn: и чё за штука? в двух словах
wlesavo: ну расстояние эвристиками мерить, а рандомить позицию которая нужна для следующей буквы, потом эвристиками подкрутить экспертные правила
wlesavo: получится быстрая сима достаточно
wlesavo: как в поиск прикрутить экспертные конечно хз
tutubalin: wlesavo как быстрее всего сделать из буквы L букву Z?
tutubalin: поправочка: не быстрее всего, а короче всего
wlesavo: tutubalin вроде вниз на 1 быстрее, на счет экспертных не знаю, я пока базовый функционал для офлайна прикручиваю
wlesavo: http://chat.codingame.com/pastebin/62ed01be-c963-418b-a398-5e712cbfe08f
wlesavo: tutubalin если есть лайфхаки по экспертным правилам я бы послушал
tutubalin: самый короткий способ из L сделать Z это [-]-
tutubalin: у меня сейчас вот так ищет
tutubalin: def change(ltr_1, ltr_2): http://chat.codingame.com/pastebin/1c87b82b-5da1-4963-be6d-8d8c6faea289
tutubalin: return best в конце :)