Бред


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
81 15 21

Аноним # OP 27/10/19 Вск 16:56:55 2062561051
анус.png (8Кб, 709x709)
709x709
ёксель-моксель.png (4Кб, 347x154)
347x154
Двощ - борда мамкиных школопиздунов, а потому призыв погромистов за 300 попытка №2.
Это не задачки на проверку ваших скиллов, мне нужны ответы.

1. Алгоритм ануса. В прошлый раз никто не осилил, так что повтор.
Есть черно-белая картинка ануса. Нужно используя циклы и проверки (основу любого яп без фич и допов), обойти его по кругу по границе, как на пике.
Начальная координата (x,y) рандомна, но на границе ануса. Это белая точка. Можно получать цвет любой точки по координатам от текущей точки через x,y +смещения. То есть, x,y-1 вернет цвет точки выше, а x+1,y той что правее.
Смысл в том как сделать оптимизацию, чтобы считывать как можно меньше точек и нагородить как можно меньше проверок.

2. Как работает ёксель в говнокоде?
Есть ячейки, в которых может быть либо число, либо сумма других ячеек. Когда меняем значение первой ячейки,
меняется результат всех зависимых. Как это реализовать в говнокоде? Сделать некое жалкое подобие ёкселя.
Можно тупо после каждого ввода пересчитать всё. Но проблема в том, что их овердохуя и это неэффективно. Каким образом можно пересчитывать лишь то, что связано с изменяемой переменной/ячейкой?
Говнокодим всё так же на основных элементах, без подключения баз данных и никаких селектов.

Сам говнокод не нужен, надо лишь понять принцип, алгоритм так сказать, как оптимизируется и работает всё это говно.
Аноним 27/10/19 Вск 16:59:56 2062562852
Аноним 27/10/19 Вск 17:02:50 2062564823
Аноним 27/10/19 Вск 17:06:41 2062567164
Аноним 27/10/19 Вск 17:06:44 2062567185
>>206256105 (OP)

Очевидно, что можно картинку на четыре квадрата разбить, и в зависимости от квадрата выбирать пиксели, которые в первую очередь проверяются. Можно сделать две основные проверки, впереди и сбоку, их будет достаточно для большинства случает, и только если они не прокатывают, выполнять проверки дальше.
Аноним # OP 27/10/19 Вск 17:13:02 2062570426
>>206256718
Ты мне подробнее опиши.

>впереди и сбоку
Это куда? Тут как бы лево право верх низ, 2д плоскость. И жёпь получается когда надо поворачивать. Лесенкой оно недолго идет. Трещины анусая могут быть и глубже и вот как в неё заходишь, то всё херится. Потому разбивка на квадраты тебе ещё и похерить может целостность. Или я не пони что-то.
Аноним # OP 27/10/19 Вск 17:17:20 2062572997

ждем погромиздов дальше.

Аноним 27/10/19 Вск 17:21:05 2062574888
>>206256105 (OP)
Выбираешь клетки контура (если одна из посьми соседних клеток - белая, то текущая клетка — часть контура), идешь по контуру простым и очевидным алгоритмом, пока вдруг не поймешь, что общее решение задачи лежит в плоскости NP-полных задач, но на простых случаях без подъебов будет работать и вариант обхода, который пятиклассник за пару уроков придумает.
Аноним 27/10/19 Вск 17:23:37 2062576339
Аноним 27/10/19 Вск 17:26:55 20625779610
>>206257488
>идешь по контуру простым и очевидным алгоритмом
Каким? Я как бы не погромист совсем и мне это нихуя не очевидно.

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

>>206257633
>на поиск путей
Там сложно и жопа полная. Да и куча математики уже, а это совсем пиздец.
Аноним 27/10/19 Вск 17:27:41 20625783511
>>206256105 (OP)
Про анус можно в прологе оформить, только наверное через пизду получится с проверкой сразу по 4 точкам, но похуй либо по 2, Ноя забыл как.
Аноним 27/10/19 Вск 17:28:08 20625786012
Аноним # OP 27/10/19 Вск 17:29:00 20625790413
>>206257835
>по 4 точкам
пиши, а то 8 хуже.

>либо по 2
это же нереально, нэ?
Аноним 27/10/19 Вск 17:34:03 20625817314
>>206257796
Я тебе говорю, что простое, но хуевое и сильно неточное/нестабильное решение можно без особых страданий будет. Твоя задача не такая простая, как тебе кажется, и общее и точное решение тебе никто просто так не будет делать.

> Каким?
Идти в рандомную соседнюю клетку контура, на которой еще не был.

> Сам говнокод не нужен, надо лишь понять принцип
Я тебе уже сказал, как отсечь только клетки контура и как выбирать следующую клетку. Ты если не совсем баран, то уже хотя бы прототип накидал.
Аноним 27/10/19 Вск 17:38:45 20625843515
>>206257904
Я забыл как там все делается...
Суть в том, что надо описать все 16 положений предикатами, типа huy(white,white,white,white), huy(white, white,white,black) и тд, то есть, например, в общем виде huy(лево,право,верх,низ) и для каждого там ещё что-то добавить, я забыл в общем, чтобы считались переходы из конкретных положений в другие. Ну и потом запускаешь, и он сам все считает, алгоритма не надо. Сложность не ебу.
Аноним # OP 27/10/19 Вск 17:40:03 20625850616
внутренний анус.png (11Кб, 709x709)
709x709
>>206258173
>Твоя задача не такая простая, как тебе кажется
Ну так ясен хуй. Была бы простая, я бы загуглил готовый ответ.

>и точное решение тебе никто просто так не будет делать.
Мне понять надо, сделать я и сам потом смогу на костылях.

>Ты если не совсем баран,
Давай предположим что я совсем баран. Чем проще поясняете, тем быстрее до меня дойдет.

>Идти в рандомную соседнюю клетку контура, на которой еще не был.
Но там есть развилки тогда. Нижнюю похуй, но вот выше можно проебать 2 пикселя на квадратике скакнув вправо, а не вверх, а ещё выше все 4. Как это фиксить?
Аноним # OP 27/10/19 Вск 17:44:23 20625875017
>>206258435
Это вообще что-то непонятное для меня.
Аноним 27/10/19 Вск 17:45:01 20625878518
>>206258506
> Как это фиксить?
Значит, ты уже видишь проблему у тупого алгоритма. Добро пожаловать в теорию графов, тебе нужен алгоритм коммивояжера. Его вообще без изменений можно использовать — тебе просто каждую точку контура обойти надо, а я уже пояснил тебе, что вообще в твоем случае контуром считается. Можешь даже не разбираться особо, как оно работает, а просто скопипастить код студентов с говнофорума и костылями и изолентой к своему анусу его прикрепить, но поебаться придется. За сим удаляюсь.
Аноним 27/10/19 Вск 17:46:07 20625885519
>>206257488
>NP-полная задача
>оценка сверху O(NхM) O(NxMx8), где N и M ширина и длина пикчи с анусом
Аноним 27/10/19 Вск 17:48:02 20625898220
>>206256105 (OP)
Первым ходом проверяет клетку справа и выше. Если две черная чекает клетку выше. Если белае двигается вверх. Если черная чекает клетку слева выше. Черная чекает клетку слева.белая двигается по координате. Если первая проверенная клетка справа сверху белая то чекает клетку сверху и если она черная чекает слева сверху и тд. А если она белая то двигается вверх и вправо и скрипт меняется на симетричный где клетка чекается снизу справа.
Аноним # OP 27/10/19 Вск 17:49:57 20625911121
>>206258785
>уже видишь проблему у тупого алгоритма
Ну так не было бы её, было бы всё просто.

>алгоритм коммивояжера
Загуглю потом. Всё равно уже много непонятного пишут, надо всё это читать. Ну хоть направлений наберу.

>>206258982
Бля, это надо переварить...
Аноним 27/10/19 Вск 17:54:10 20625936222
oekaki.png (5Кб, 400x400)
400x400
>>206258785
Какой алгоритм коммивояжера? Ты что даун?
Аноним 27/10/19 Вск 17:55:24 20625944523
>>206258982
Бля. Очень криво написал.
Короче говоря я предлагаю тупо заскриптовать все ситуации. Сначала чекается клетка верх-право. В зависимости от результата чекаются другие клетки по очереди. Школоререшение через иф ду.
Аноним 27/10/19 Вск 17:55:48 20625947224
Хранишь позицию в объекте.
Пробуешь шагнуть вверх
Если чёрное, то пробуешь влево
Если чёрное то вниз
Если черное то вправо
Если после чёрного белое, шагаешь, возвращаешь к попыткам, запоминаешь путь.
Когда координата совпала с начальной - ты обошёл анус по контуру.

Можно оптимизировать с запоминанием направления обхода
Аноним 27/10/19 Вск 17:57:30 20625957225
Аноним 27/10/19 Вск 17:58:03 20625959226
>>206256105 (OP)
2. Запоминаешь значение изменяемой ячейки и работаешь с ним. Там было 5 стало 3, значит вычитаешь из пяти три, получаешь два. Из ячеек с результатом вычитаешь 2.
Аноним # OP 27/10/19 Вск 18:02:03 20625982527
>>206259445
>Школоререшение через иф ду.
Ну типа того и делаем, но надо оптимизировать, а то оно будет думать там полчаса.

>>206259472
Оно зациклится на ямках и трещинах.
Аноним 27/10/19 Вск 18:02:37 20625986628
Аноним 27/10/19 Вск 18:02:59 20625989429
>>206259825
Можно оптимизировать с запоминанием направления обхода
Аноним # OP 27/10/19 Вск 18:04:47 20626001030
>>206259592
Тут всё несколько сложнее. Как вообще из говна и палок сделать бд с ячейками. Вот есть у тебя переменные или массив. От них и плясать.

>>206259866
Одинаковые должны быть, не учитывай если укосило при зуме.

>>206259894
>с запоминанием направления обхода
Как?
Аноним 27/10/19 Вск 18:13:35 20626053631
Общее количество точек известно? Если нет, вряд-ли что-то толковое можно придумать.
Аноним 27/10/19 Вск 18:14:00 20626056432
oekaki.png (9Кб, 400x400)
400x400
>>206260010
Массив уже бд, что тебе нужно то?
direction myDirection(Up).
>запоминанием направления обхода
Можно легко реализовать, но на самом деле то нинужно. Он не зациклится, если всегда будет поворачивать последовательно.
Аноним # OP 27/10/19 Вск 18:21:13 20626102133
>>206260536
Рандом. Это фотка после фильтра будет. Не более 55x55 пикселей.

>>206260564
Ну бля, я не погромист же, а разбираюсь тут понемногу.
К слову, можете подкинуть книжек на русском, но не херь как задать переменную и сделать цикл, это я уже знаю. Вот такую всякую интересную поеботу бы с решениями и пояснениями, для чайников.

>Он не зациклится
В следующий раз заготовлю говнокод. Из треда пару идей отметил и читаю херь в переводе про контурную трассировку пока.
Аноним 27/10/19 Вск 18:35:18 20626190434
>>206261021
>Рандом. Это фотка после фильтра будет. Не более 55x55 пикселей.
Тогда перебор. Смотрим на два пикселя впереди:
(при обходе по часовой стрелке)
- черный, черный - идем влево;
- белый, белый - вправо;
- б, ч - прямо.
Для первой точки нужно смотреть на четыре пикселя вокруг точки и исходить из выбранного направления обхода

Аноним 27/10/19 Вск 18:36:29 20626198535
oekaki.png (18Кб, 400x400)
400x400
>>206261021
Кароч у нас тут 21 век, все сидят на рязани и мы будем ебашить потоки.
Создаёшь пул на оптимальное количество, и генерируешь обходчиков для каждого потока. Обходчики генерируются по краям карты, пикрилейтед и двигаются от края. Когда достигают ануса, обходят вправо до точки следующего обходчика. Как такая идея?
Аноним 27/10/19 Вск 18:40:05 20626216236
oekaki.png (20Кб, 400x400)
400x400
Или можно ронять обходчиков на анус, и соединять линиями. Есть соединение? Заебись, сойдёт, мы же не ракету на марс запускаем, примерный результат, тоже результат. Нет соединения, тогда от точки соприкосновения рисуем новую линию
Получится примерный анус.
Аноним 27/10/19 Вск 18:40:51 20626221237
Еще можно из всего массива точек подбирать соседей, т.е. переставлять точки пока соседи не сойдутся.
Аноним # OP 27/10/19 Вск 18:41:19 20626224338
>>206261985
>Как такая идея?
Сложно. И разве это не дольше чем по контуру ползти? Ты же по сути считаешь все точки и даже дважды местами. И оно на 1 хуёвом ядре будет пердеть, когда запилю, а не на современном проце.

>>206262162
>обходчиков
Опять какие-то фичи? Надо на примитиве сделать.

>>206261904
>Смотрим на два пикселя впереди:
Обведи пример, не понял почему 2 впереди.
Аноним # OP 27/10/19 Вск 18:42:44 20626232839
>>206262212
>переставлять точки пока соседи не сойдутся.
Непонятно. Пишите как для совсем тупых.
Аноним 27/10/19 Вск 18:43:49 20626241340
>>206262243
На однопотоке будет чуть медленнее, зато в 2 и более потоков будет выигрыш. Точки не перекроются.
>Опять какие-то фичи? Надо на примитиве сделать.
Да эт я траллю немножк.
Аноним 27/10/19 Вск 18:44:29 20626245641
>>206262243
Правда многопоток конечно разумен для больших карт. Если 55х55 то похуй так то.
Аноним 27/10/19 Вск 18:47:57 20626267342
oekaki.png (282Кб, 4000x4000)
4000x4000
>>206262243
>Обведи пример, не понял почему 2 впереди.
Потому что те, которые сзади, мы уже прошли: сзади всегда будет "б,ч" при обходе по часовой стрелке, и "ч,б" при обходе против часовой стрелки
Аноним 27/10/19 Вск 18:48:15 20626268743
Аноним # OP 27/10/19 Вск 18:49:19 20626275044
>>206262413
>будет выигрыш
Да пока вообще надо переварить суть и сделать похуй как. А там уже допиливать чтобы за 3 сек успевало.
Я когда скрипты делал первые версии тупили, а потом в процессе до 10 раз ускорялись. А всё потому, что алгоритмов не знаю. И вроде бы кажется что первое или второе похуй же(говноскан), а нет, иногда можно было сократить время в разы просто поменяв местами 2 ёбаные процедуры. К тому и тред, смотрю о чем пишут, гуглю и размышляю. А уже потом страдать.

>>206262687
>Бля
ага.
Аноним 27/10/19 Вск 18:53:59 20626302145
>>206262328
Ты тролишь?
1.У каждой точки на контуре всегда будет только две ближайших точки-соседа.
2.Сортируешь их по этому соседству.
Хз насколько это оптимально.
Аноним # OP 27/10/19 Вск 19:04:59 20626394046
>>206263021
>Ты тролишь?
Нет.

>Сортируешь
Так уже лучше. Хз как сделать сортировку, особенно быстро, но если перебрать их в другой массив и они по порядку +-1 на корду будут, то можно и проверить на замкнутость ануса в итоге получив корды контура или стрелочки через подмену. Надо обдумать, это тоже вариант.
27/10/19 Вск 19:06:28 20626405747
>>206256105 (OP)
> 2. Как работает ёксель в говнокоде?
> Можно тупо после каждого ввода пересчитать всё. Но проблема в том, что их овердохуя и это неэффективно. Каким образом можно пересчитывать лишь то, что связано с изменяемой переменной/ячейкой?

Сохраняешь зависимости одних ячеек от других, при обновлении ячейки обновляешь все зависимые ячейки. Порядок обновления зависимых ячеек важен, так как одни могут зависеть от других. Чтобы не войти в луп, нужно находить циклические зависимости и показывать ошибку
Аноним # OP 27/10/19 Вск 19:08:12 20626415548
>>206264057
>Сохраняешь зависимости одних ячеек от других
Прост))) Мне для тупых надо, как это сделать? Вам то всё просто, но я не погромист и туплю.
27/10/19 Вск 19:14:24 20626456349
>>206264155
> я не погромист
Тогда идешь и нанимаешь программиста и он тебе делает твою хуйню

A=5 (при обновлении должен поменять C, B)
B=A+C+4 (при обновлении должен поменять D)
C=A+3 (при обновлении должен поменять B)
D=B+1 (при обновлении ничего не меняет)
Аноним 27/10/19 Вск 19:22:58 20626516950
>>206256105 (OP)
Решал похожую задачу когда-то на codingame.

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

В общем смотри, надо для каждого направления написать приоритет поворота, так, что бы стенка была все время с одной стороны. Представь что по пути идет человек и все время касается стены правой рукой и не может оторвать ее.

Для направления вверх:
Если человек идет вверх и впереди стена, то поворачивает направо. Если там тоже стена, то налево (налево от положения вверх). Если и слева стена, то идет назад.

Теперь этот алгоритм надо прописать для каждого направления (вниз, влево и вправо), соответственно изменяя приоритет поворота относительно локального направления человека. Например, когда чел будет идти вправо, то поворотом направо стенет направление вниз.

Ну и собственно все. Теперь нужно выбирать приоритет поворота относительно текущего направления - идешь вверх, поворачиваешь согласно приоритетам прописаных для движения вверх.

Ну и в данном случае еще нужно определить в первой точке, куда начинать двигаться. В моем алгоритме этого небыло, т.к. я двигал чела внутри черной зоны, а не снаружи и не мог выйти за пределы лабиринта.

Общая суть в том что бы идти вдоль стены, всегда касаясь ее правой рукой.
Аноним # OP 27/10/19 Вск 19:29:23 20626561351
>>206264563
>идешь и нанимаешь программиста
Мне надо понять как оно работает, а не готовое одноразовое решение.

>при обновлении должен поменять C, B
База разбухнет же в разы, если к каждой ячейке ещё и приписать все, где она упоминается. В примере по 2шт, на деле до 50и может быть на каждую. И несколько миллионов таких.

>>206265169
1 и 2 не связаны напрямую. Это разные куски с разными задачамси. Второе хранение данных, которые могут меняться.

>приоритет поворота
Не вышло оно в прошлый раз и зависало в некоторых трещинах.

>куда начинать двигаться
Это похуй. По или против значения не имеет. Выберется всё равно то, что нужно от этой операции.

>внутри черной зоны
Это тоже похуй. Внешний или внутренний контур без разницы.
Можно под любой сделать нужное.
- - - - - -

Оп-хуй отошел на пару часов. Тред пусть тонет. В этот раз и так вышло продуктивнее, чем в прошлый. Есть над чем подумать и что погуглить. Но если кто что ещё вбросит, я прочитаю потом.
Аноним 27/10/19 Вск 19:35:54 20626605352
Annotation 2019[...].png (55Кб, 2559x1008)
2559x1008
>>206265613
Если зависало, значит где-то был косяк. У меня этот алгоритм полностью обходил лабиринт с пика.
Аноним 27/10/19 Вск 19:40:50 20626635253
>>206263021
>1.У каждой точки на контуре всегда будет только две ближайших точки-соседа.
Хотя, может быть и три, если где-то толщина контура 1 пиксель. Так что не пойдет.
27/10/19 Вск 19:51:46 20626714354
>>206265613
> Мне надо понять как оно работает, а не готовое одноразовое решение.
Возьми листочек, нарисуй формулы с зависимостями в виде графа. Дальше думай как оно должно обновлять другие ячейки при изменении формулы

> База разбухнет же в разы, если к каждой ячейке ещё и приписать все, где она упоминается.
У тебя два стула, либо пересчитывать каждый раз все ячейки, либо знать какие пересчитывать. Возможно над вторым даже не стоит запариваться, если у тебя и так все быстро считается
Аноним 27/10/19 Вск 19:52:45 20626719855
iamge.png (81Кб, 512x384)
512x384
>>206265169
Надо попробовать твой алгоритм
Аноним 27/10/19 Вск 19:54:38 20626731756
>>206256105 (OP)
300$ и дам тебе решение на питуне например. что то сложнее один хуй не осилишь
Аноним 27/10/19 Вск 20:09:52 20626840157
15721951659620.png (97Кб, 512x392)
512x392
>>206267198
Сейчас понял, что в таком виде этот алгоритм не сработает, потому что челик может упереться не только в стену, но и в пустоту на повороте. Надо будет на каждый шаг добавлять проверку, не улетит ли чел в космос следующим шагом. Возможно поэтому у них в прошлый раз и зависало.
Аноним 27/10/19 Вск 20:13:09 20626861358
>>206256105 (OP)
Именно эта пикча? В питоне четыре строчки scikit и интеграл. Хуй я за тебя буду код писать, двоечник.
Аноним 27/10/19 Вск 20:27:38 20627026859
>>206256105 (OP)
1. Алгоритм прохождения лабиринта
2. Реактивное программирование (на основе событий, куда же без них, всё это с GUI связано)
мимопогромизд
Аноним 27/10/19 Вск 20:31:24 20627047060
oekaki.png (104Кб, 512x392)
512x392
>>206268401
Он и тут должен сперва вниз пойти, а потом наверх и как он поймёт потом куда идти?
27/10/19 Вск 20:35:42 20627069561
>>206270470
Правая рука всегда на стене
Аноним 27/10/19 Вск 20:36:08 20627072762
>>206270470
Не, здесь, как раз все сработает.
Идет вниз, упирается в стену. Пробует вправо, пробует влево, идет назад. Направление меняется на "вверх", соответственно приоритеты поворота тоже меняются относительно его. Упершись в верхнюю стену пробует вправо - не получается, пробует влево - получается. А вот слева он ни во что не упирается. А мой алгоритм, расчитан только на повороты, когда утыкаешься в стену.
Аноним 27/10/19 Вск 20:45:04 20627121063
>>206268613
> scikit
> интеграл
> дискретная картинка с ОГРОМНЫМИ блоками
Так вот из-за кого у меня с двумя гигами лиса иногда подтормаживает!
Ты ещё и МЛ-щик поди? Поди прочь, он программистов спрашивал.
Аноним 27/10/19 Вск 20:49:41 20627144664
Аноним 27/10/19 Вск 20:54:54 20627174765
простейшие конт[...].png (2Кб, 500x500)
500x500
Как обойти такой анус?
Аноним 27/10/19 Вск 21:06:26 20627244066
2019-10-27.png (3Кб, 541x536)
541x536
>>206271747
По границе формы. Собственно, прохода во внутреннюю дырку нет. Если по условию задачи можно ходить по диагонали, перепрыгивая углы, то это в корне меняет всю задачу и подход к ее решению, значительно усложняя все.
Даже фотошоп, умным выделением эту дырку не выделяет. Пикрилейтед.
Аноним 27/10/19 Вск 21:15:09 20627297867
Хули ты ебёшь мозги? Разбивай всю зону на квадраты и применяй волновой алгоритм к каждой.
Аноним 27/10/19 Вск 21:25:02 20627353668
>>206256105 (OP)
>>206271747
Ебанат
Куча ошибок скорее всего, а ещё видимо стиль поплывёт, но я хотя бы попытался, в отличии от некоторых чмонь.

(Короч Начальная-Точка (Ячейка Хэ Зэ))
(Короч Текущая-Точка (Ячейка Хэ Зэ))
(Короч Старая-стенка НИЧО)

(Короч Чекни-Цвет (Хэ Зэ)
"Тут ты сам напишеш")

(Короч Шаг-В (Сторона)
(Сделай-если
((Совпало Сторона Право)
(Присвой Текущая-точка (Ячейка (Плюс-одын (Первый Текущая-точка)) (Остальное Текущая-точка))))
((Совпало Сторона Лево)
(Присвой Текущая-точка (Ячейка (Минус-одын (Первый Текущая-точка)) (Остальное Текущая-точка))))
((Совпало Сторона Низ)
(Присвой Текущая-точка (Ячейка (Первый Текущая-точка) (Плюс-одын (Остальное Текущая-точка)))))
((Совпало Сторона Верх)
(Присвой Текущая-точка (Ячейка (Первый Текущая-точка) (Минус-одын (Остальное Текущая-точка)))))))

(Короч Где-Стена ()
(Сделай-если
((Совпало Чёрный (Чекни-цвет (Плюс-одын (Первый Текущая-точка)) (Остальное Текущая-точка)))
Право)
((Совпало Чёрный (Чекни-цвет (Первый Текущая-точка) (Плюс-одын (Остальное Текущая-точка))))
Низ)
((Совпало Чёрный (Чекни-цвет (Минус-одын (Первый Текущая-точка)) (Остальное Текущая-точка)))
Лево)
((Совпало Чёрный (Чекни-цвет (Первый Текущая-точка) (Минус-одын (Остальное Текущая-точка))))
Верх)
(ЧЁТКО
НИЧО)))

(Короч Сделай-шаг (Старая-сторона)
(Давай ((Сторона (Где-стена)))
(Если (Совпало сторона НИЧО)
(Если (Совпало Старая-сторона НИЧО)
(ПИЗДЕЦ РАСПИДОРАСИЛО)
(Куча-всего
(Шаг-в Старая-сторона)
НИЧО))
(Сделай-если
((Совпало Сторона Верх)
(Шаг-в Лево))
((Совпало Сторона Право)
(Шаг-в Верх))
((Совпало Сторона Лево)
(Шаг-в Низ))
((Совпало Сторона Низ)
(Шаг-в Право))))
Сторона))

(Вообщем-цикл
Пока-не (Вместе (Совпало (Первый Текущая-точка) (Первый Ничальная-точка)) (Совпало (Остальное Текущая-точка) (Остальное Ничальная-точка)))
Делай (Присвой Старая-стенка (Сделай-шаг Старая-стенка)))
Аноним 27/10/19 Вск 21:26:04 20627358269
Аноним 27/10/19 Вск 21:37:52 20627423270
>>206273536
>>206273582
Да, кстт, не решает проблему "кармана", когда стены с нес сторон. Но без среды писать такое текстом наголо я ебал.
Аноним 27/10/19 Вск 21:38:10 20627425471
Аноним 27/10/19 Вск 21:42:58 20627454972
>>206256105 (OP)
1. Оптимизация не имеет смысла, так как кэш-промахи разных строк внесут больший вклад, чем твое координатодрочерство. Если бы нужна была реально скорость, то там бы все хранилось в битовых массивах, тебе не понять.
2. Евенты на изменение.

>Это не задачки на проверку ваших скиллов, мне нужны ответы.
Пашел нахуй, бесплатно решать за тебя домашки, чтобы ты потом устроился 300к/сек
Аноним # OP 27/10/19 Вск 21:50:31 20627503173
>>206266053
Закинь код своего бота для лабиринта.

>>206267143
Уже понял что всё херня, надо что-то другое думать туда.

>>206267317
Мне не надо готовое решение, так как это лишь кусок. Остальное то кто будет делать.

>>206268613
Нет, разные. Ради одной то какой смысл вообще был бы.

>>206272440
Такого не должно встречаться. Можно забить на эту дырочку.

>>206272978
>волновой алгоритм
Как будто я знаю что это.

>>206273582
Надо переваривать этот текст чем-то похожий на код... Блять, лучше бы на своём яп писал, чем так.

>>206274549
>тебе не понять.
Есть такое.

>домашки
Это не домашка. Это нечто типа бота на скрипте.
Аноним 27/10/19 Вск 22:25:00 20627718374
puk.webm (1663Кб, 568x428, 00:00:20)
568x428
Аноним # OP 27/10/19 Вск 22:27:48 20627738175
Аноним 27/10/19 Вск 22:28:14 20627741276
>>206275031
>Как будто я знаю что это.
Ты даун? Тебе сложно википедию открыть? Делаешь волновой для всего пространства, а потом оптимизируешь разбивая на квадраты.
>>206277183
Ах-ха, индексы не вычитаешь, а только в + ходишь.
Аноним 27/10/19 Вск 22:36:12 20627791277
>>206277412
Не закончил же еще, там чем больше просчетов тем существенней зависимость в очередности. Я вообще прихуел когда он начал сам ходить туда сюда, перепрыгивать.
Аноним # OP 27/10/19 Вск 22:38:07 20627803078
Аноним 27/10/19 Вск 22:39:44 20627812779
Аноним # OP 27/10/19 Вск 22:42:44 20627829580
Аноним 27/10/19 Вск 23:10:54 20627992981
puk2.webm (2360Кб, 568x428, 00:00:30)
568x428
Перепрыгивает через ямы

>>206278030
Да это не код, а констракт2
Аноним 27/10/19 Вск 23:33:05 20628106782
>>206256105 (OP)

супер ультра не оптимальное решение с асимптотической сложностью O(n*n)

идешь по всем пикселям изображение и если пиксель черный, то все белые пиксели вокруг него (если они есть) 100% контур.

res = []
for x in image.width:
for y in image.height:
if image[x, y] == black:
if image[x+1, y] == white:
res += point(x+1, y)
elif image[x-1, y] == white:
res += point(x-1, y)
elif image[x, y+1] == white:
res += point(x, y+1)
elif image[x, y-1] == white:
res += point(x, y-1)
# еще 4 варианта для диагональных пикселей добавишь сам
# еще в каждое условие нужно добавить проверку на выход за границы изображения
res = set(res) # что бы удалить дубликаты

на хабре пару лет назад была статья о поисках контруров и алгебре над контурами, за 1 минуту не нашел, но ты можешь поискать. В статье использовали контуры для распознавания текста кажется.

Еще как вариант ты можешь найти производную от твоего изображения и контуром будут пиксели, где производная не равна нулю. https://habr.com/ru/post/114452/
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов