полный эребор, не круто
это алгоритм Ли, а не эребор
Очень похоже на - Марковский процесс принятия решений, это покруче чем A*.
Эту фигню проходят в магистратуре...
Эту фигню проходят в магистратуре...
Проходим и ныне по "Теории информационных процессов", третий курс. Забористая дрянь.
Это обычный пиоск в глубину, а не алгоритм Ли.
Во-первых, алгоритм Ли основан на поиске в ширину, а на данной картинке при наполовину исследованном лабиринте в самом начале остаются неисследованные пути. При использовании алгоритма Ли так не бывает.
Во-вторых, можно просто внимательно присмотреться к картинке - там на развилке выбирается случайный путь, в случае тупика идёт возврат к последней развилке и выбирается другой путь. Это и называется поиск в глубину.
Во-вторых, можно просто внимательно присмотреться к картинке - там на развилке выбирается случайный путь, в случае тупика идёт возврат к последней развилке и выбирается другой путь. Это и называется поиск в глубину.
а почему не правило правой руки?
Такие штуки алгоритмически проще всего решаются графами, для которых ещё и алгоритмов тьма-тьмущая под любые цели. И кучу готовых реализаций этих алгоритмов на разных языках можно нагуглить.
Недавно вот тоже мучился с хитрожопым поиском по файлу с данными несколько дней. А теперь поиск в сведённом к графу файле и с использованием алгоритма Краскала занимает строчек 50 кода.
Недавно вот тоже мучился с хитрожопым поиском по файлу с данными несколько дней. А теперь поиск в сведённом к графу файле и с использованием алгоритма Краскала занимает строчек 50 кода.
Двумерный лабиринт он конечно граф. Но больно специальный, двунаправленный, невзвешенный, у вершины не более четырех ребер. Из-за этих ограничений, для таких графов часто есть специальные, более простые в написании или более быстрые алгоритмы.
Присмотрись он иногда делает пропускает левые повороты. Это реально поиск в глубину, но в случае развилки (вполне возможно) приоритет обхода определяется эвристикой (скорее всего) или случайно. Во всяком случае приоритет точно не фиксированный (если писать код по тупому обычно получается фиксированный, из-за последовательных условий: если можно вверх - идем вверх. если можно вправо - идем вправо и так далее). В одной из первых развилок он предпочитает шаг влево, шагу вниз, а в следующей уже наоборот, шаг вниз шагу влево.
wallhack
Под текстуры провалишься
Лень фотошопить, но ведь можно и вокруг обойти.
Если в лабиринте идти по одну сторону стены, то рано или поздно придешь к выходу. Вот и весь алгоритм.
Да, но только для двухмерных лабиринтов, и в худшем случае придется пройти путь, в два раза превышающий длину всех коридоров лабиринта.
ты в точке, обозначенной кружком. найди выход, действуя по своему алгоритму :)
Ну ты в неё не попадешь идя по данному алгоритму от входа
я так в "Два мира 2" в лабиринте заблудился
Чойто такое припоминаю. Помню целый час по одному лабиринту ходил во тьме и с минимумом монстров (они вродь быстро закончились а вот лабиринт нет) потом плюнул и удалил игру.
А уж если вспомнить лабиринты в майнкрафте то ваще ужос правда там всегда можно забить на подземелье и с помощью кирки пробить путь наверх.
А уж если вспомнить лабиринты в майнкрафте то ваще ужос правда там всегда можно забить на подземелье и с помощью кирки пробить путь наверх.
"Никогда не копай над собой" (c)
Вродь если лава близко то можно услышать.
А там всё совсем классно. Какой-то из лабиринтов сломан и не проходится даже по карте. Я так ушёл в пустоту и потом минут 10 искал выход хотя бы в лабиринт.
ты очнулся в этой точке, ничего не помнишь (только алгоритм)
действуй ;)
действуй ;)
надо руку стирать свою об стену, тогда ты будешь знать, где ты уже прошёл по кровавым следам и умрёшь... потому что ты обречён, маленький щенок :D
А если в лабиринте ловушки? :)
Не оптимален - не отсекает запертые области из которых нельзя попасть к выходу.
Тут же метод перебора. Идет до тупика и потом возвращается на развилку и так раз за разом.
В лоб - двойной волновой метод, не оптимально, но надёжно и быстрее этого перебора.
Перебор лажа. Даёшь А*
Где то там прячется Минотавр
Он там давно умер с голоду.
Он у самого входа сидит. Его же не полным дебилом родили.
у меня сразу мозг сломался
кто рискнет держаться одной стены?
если долго и пристально смотреть можно видеть разные узоры
я например вижу листву, морских звезд, человеческие уши, мозг, кресты
еще каких-то пауков, пальцы, горы-холмы, животных...
я например вижу листву, морских звезд, человеческие уши, мозг, кресты
еще каких-то пауков, пальцы, горы-холмы, животных...
только сиськи(
У меня от этой пикчи видюха свистит. Спасибо, буду разбираться.
нинасколько, зальётся весь лабиринт за исключением тех участков, которые "герметичны" и в которые никак не попасть (а в хорошем лабиринте таких должно быть как можно меньше)
Капитан Очевидность поясняет, что заливаются не коридоры, а стены.
извиняюсь, не понял автора)
Схоронил. Пройду на досуге.
дюна на сега тупила как раз из-за таких вещей. можно было построить лабиринт и наблюдать, как падает фпс
Бле... я залип ):
*Шутка про дерево скиллов в Path of Exile*
Это клево, но алгоритм был бы проще если бы распознавались стены. В любом простом лабиринте при входе в него можно выбрать правую или левую стену и идти вдоль нее все время. рано или поздно приведет к выходу
В комментах выше рисунком проиллюстрировали, что «держаться одной стены» не во всех лабиринтах работает.
Это уже не совсем классический лабиринт.
я такие на уроке географии рисовал
А правда ли что если идти в лабиринте не отрывая левой руки от стены то в конце концов выйдешь наружу?
Как минимум вернёшься туда, откуда пришел.
Могу ошибаться.
Насколько вижу, все неправильные пути довольно коротки. Алгоритм просто проводит путь во все направления, и довольно быстро упирается в стенку. А что, если провести два длинных пути через лабиринт, но один будет с тупиком в конце?
Насколько вижу, все неправильные пути довольно коротки. Алгоритм просто проводит путь во все направления, и довольно быстро упирается в стенку. А что, если провести два длинных пути через лабиринт, но один будет с тупиком в конце?
Чтобы написать коммент, необходимо залогиниться