Miklix

Лови и убиј генератор на лавиринт

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

Генератор на лавиринт кој го користи алгоритмот Hunt and Kill за да создаде совршен лавиринт. Овој алгоритам е сличен на Recursive Backtracker, но има тенденција да генерира лавиринти со нешто помалку долги, кривулести коридори.

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

Hunt and Kill Maze Generator

Алгоритмот „Hunt and Kill“ е всушност модифицирана верзија на Recursive Backtracker. Модификацијата се состои во систематско скенирање (или „барање“) на нова ќелија за да продолжи од кога не може да оди понатаму, за разлика од вистинското рекурзивно пребарување, кое секогаш ќе се враќа на претходната ќелија на стекот.

Поради ова, овој алгоритам лесно може да се прилагоди за генерирање лавиринти со различен изглед и чувство, само со избирање почесто да се влегува во режим на „лов“ или според специфични правила. Верзијата имплементирана овде влегува во режим на „лов“ само кога не може да оди подалеку од тековната ќелија.

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

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


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








За алгоритмот „Лов и убиј“

Алгоритмот „Лов и убиј“ е едноставен, но ефикасен метод за генерирање лавиринти. Тој е донекаде сличен на пребарувањето „прво во длабочина“ (т.е. алгоритмот „Рекурзивен вратен тракер“), освен кога не може да оди подалеку од тековната позиција, тој систематски скенира (или „лови“) низ лавиринтот за да пронајде нова ќелија од која ќе продолжи. Алгоритмот се состои од две главни фази: одење и лов.

Како функционира алгоритмот „Лов и убиј“ за генерирање лавиринт

Чекор 1: Започнете од случајна ќелија

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

Чекор 2: Фаза на одење (случајно одење)

  • Изберете случаен непосетен сосед.
  • Преместете се до тој сосед, означете го како посетен и издлабете патека помеѓу претходната и новата ќелија.
  • Повторувајте додека не останат непосетени соседи.

Чекор 3: Фаза на лов (Враќање назад преку скенирање)

  • Скенирајте ја мрежата ред по ред (или колона по колона).
  • Пронајдете ја првата непосетена ќелија што има барем еден посетен сосед.
  • Поврзете ја таа ќелија со посетен сосед за да ја продолжите фазата на одење.
  • Повторете додека не се посетат сите ќелии.

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

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


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

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

За авторот

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