Miklix

Вилсоновиот алгоритам генератор на лавиринт

Објавено: 5 март 2025, во 19:51:14 UTC
Последно ажурирано: 12 јануари 2026, во 09:03:48 UTC

Генератор на лавиринти што го користи Вилсоновиот алгоритам за да создаде совршен лавиринт. Овој алгоритам ги генерира сите можни лавиринти со дадена големина со иста веројатност, така што во теорија може да генерира лавиринти со многу мешани распореди, но бидејќи има повеќе можни лавиринти со пократки отколку подолги коридори, почесто ќе ги гледате.

Оваа страница беше машински преведена од англиски за да биде достапна за што повеќе луѓе. За жал, машинското преведување сè уште не е усовршена технологија, така што може да се појават грешки. Ако сакате, можете да ја видите оригиналната англиска верзија овде:

Wilson's Algorithm Maze Generator

Вилсоновиот алгоритам е метод на случајно одење со бришење на јамки кој генерира униформни дрвја што опфаќаат за создавање лавиринт. Ова значи дека сите можни лавиринти со дадена големина имаат еднаква веројатност да бидат генерирани, што го прави техника за непристрасно генерирање лавиринти. Вилсоновиот алгоритам може да се смета за подобрена верзија на алгоритмот Алдус-Бродер, бидејќи генерира лавиринти со идентични карактеристики, но работи многу побрзо, па затоа не се потрудив да го имплементирам алгоритмот Алдус-Бродер овде.

Совршен лавиринт е лавиринт во кој има точно една патека од која било точка во лавиринтот до која било друга точка. Тоа значи дека не можете да завршите да одите наоколу во кругови, но често ќе наидете на ќорсокак, што ќе ве принуди да се свртите и да се вратите назад.

Мапите на лавиринтот генерирани овде вклучуваат стандардна верзија без никакви позиции за почеток и крај, така што можете сами да ги решите тие: ќе има решение од која било точка во лавиринтот до која било друга точка. Ако сакате инспирација, можете да овозможите предложена почетна и завршна позиција - па дури и да го видите решението помеѓу двете.


Создадете нов лавиринт








За Вилсоновиот алгоритам

Вилсоновиот алгоритам за генерирање на униформни опфаќачки дрвја користејќи случаен ѕид избришан со јамка е создаден од Дејвид Брус Вилсон.

Вилсон првично го вовел овој алгоритам во 1996 година, додека истражувал случајни дрвја што се протегаат и Маркови ланци во теоријата на веројатност. Иако неговата работа била првенствено во математиката и статистичката физика, алгоритмот оттогаш е широко прифатен за генерирање лавиринти поради неговата способност да произведува совршено униформни лавиринти.

Како Вилсоновиот алгоритам работи за генерирање лавиринти

Вилсоновиот алгоритам гарантира дека конечниот лавиринт е целосно поврзан без никакви јамки со итеративно извлекување патеки од непосетени ќелии користејќи случајни прошетки.

Чекор 1: Иницијализирај

  • Започнете со мрежа исполнета со ѕидови.
  • Дефинирајте список на сите можни ќелии за премин.

Чекор 2: Изберете случајна почетна ќелија

  • Изберете која било случајна ќелија и означете ја како посетена. Ова служи како почетна точка на лавиринтот за време на генерирањето.

Чекор 3: Случајно движење со бришење на јамка

  • Изберете непосетена ќелија и започнете случајна прошетка (движејќи се во случајни насоки).
  • Ако прошетката стигне до веќе посетена ќелија, избришете ги сите јамки во патеката.
  • Откако прошетката ќе се поврзе со посетениот регион, означете ги сите ќелии на патеката како посетени.

Чекор 4: Повторете додека не се посетат сите ќелии:

  • Продолжете со избирање на непосетени ќелии и изведување случајни прошетки сè додека секоја клетка не стане дел од лавиринтот.

Дополнително читање

Ако ви се допадна овој пост, можеби ќе ви се допаднат и овие предлози:


Споделете на BlueskyСподелете на ФејсбукСподелете на LinkedInСподелете на TumblrСподелете на XСподелете на LinkedInЗакачи на Pinterest

Микел Кристенсен

За авторот

Микел Кристенсен
Микел е креатор и сопственик на miklix.com. Тој има над 20 години искуство како професионален компјутерски програмер/развивач на софтвер и моментално е вработен со полно работно време во голема европска ИТ корпорација. Кога не пишува блог, тој го поминува своето слободно време на широк спектар на интереси, хоби и активности, кои до одреден степен може да се рефлектираат во разновидните теми опфатени на оваа веб-локација.