Chat:Ru/2020-08-24

From CG community
Jump to navigation Jump to search

gsomix: gtj, зачем ты нам показываешь перепечатки туториалов? :)

Default avatar.png gtj: окей на дпейст скину в след раз

Default avatar.png gtj: слушай может ты вкурсе как получить вершины буфера из блендера я не пойму загуглить

Default avatar.png gtj: не пойму как загуглить такое вообще

Default avatar.png gtj: из ув хочу получить координаты вершин на туториале написано он как то это сделал

Default avatar.png gtj: не понимаю как это проделать

735487: https://blenderartists.org/t/how-to-see-vertex-coordinates/420220

vrabosh: зацените как сдела Dungeons and Maps


vrabosh: понятный код получился? или неоч?

Default avatar.png gtj: оказалось на деле проще ща проверю

gsomix: vrabosh, где код? :)

Default avatar.png gtj: вставь в консольный шутер лабиринт побегаем)

Default avatar.png 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МБайт данных в секунду, он физически не может это протощить через процессор... это моё мнение... а уж тем более на каждый чих делать проверки... не кольцевой буфер утопия... нужно обмениваться указателями на буфера...

Default avatar.png gtj: задача пахнет нобелевкой

Uljahn: а, первый поток догоняет второй

Default avatar.png gtj: Ульян ослик генерит бесконечность так проще

Uljahn: а частоту понизить нельзя?

Default avatar.png gtj: ослика если только

Pyhesty: gtj - это аналогично приёму данных по 10Гбитному интерфейсу, валится 1.2Гбайта в секунду только успевай перекидывать по памяти... так же и тут по идее...

Default avatar.png gtj: о стой

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

Default avatar.png gtj: надо кароче приблуду как в ослике

Pyhesty: если с шагом, то не реализуется режим осциллографа peak-detector - можно пропустить гличи в сигнале

Default avatar.png gtj: кароче я вспомнил

Default avatar.png gtj: нужен тавкой же типо ослик но который принимает на этой скорости

Default avatar.png gtj: во

Default avatar.png gtj: и компом уже шуршать

Default avatar.png gtj: вроде так

Uljahn: gtj: не флуди бессодержательными сообщениями

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

vrabosh: http://chat.codingame.com/pastebin/10af3d0f-f493-4265-a90e-b39e2734dfe8

Default avatar.png gtj: есть генератор а есть тот кто принимает генератор

vrabosh: просто тупо максимальную диагональ вывести надо было)

Default avatar.png gtj: мультиплексор мб или чото такое

Pyhesty: как делать такие ссылки? ))

Uljahn: постишь более 4-х строк прямо в чат

Uljahn: автоматом сворачивает

Default avatar.png gtj: Pyhesty тогда смотри а как обьяснить как разработчик софта реализовал вывод на екран 1 к 1 сигнала?

Default avatar.png gtj: без лишнего

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

Default avatar.png gtj: на 10 секунде такого чтения сигнал все точнее и точнее

Default avatar.png gtj: тоесть пропускает 1/3 сигнала мб

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

Default avatar.png gtj: все это попахивает асемблером

vrabosh: решите эту задачку Robot show

Default avatar.png gtj: https://iu4.ru/edu/211001/sem11/kurs/shpe_rpz_11sem.pdf

vrabosh: она прикольная... интересно получится увас сделать так как надо

Default avatar.png gtj: ну вот теорема котельникова

vrabosh: Uljahn у тебя изначально как полчилось?

Default avatar.png gtj: а где теорема котельникова там и дст и ффт

Default avatar.png gtj: мгновенные значения ряда есть дискретные отсчеты сигнала

Default avatar.png gtj: могу перевесмти на русский язык

Default avatar.png gtj: надо считывать компоненту сигнала и распаковывать на лету

Default avatar.png gtj: ффт наверно

Default avatar.png 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 в конце :)