Miklix

Rostoucí strom Algoritmus bludiště generátor

Vydáno: 16. února 2025 v 21:35:14 UTC
Poslední aktualizace: 12. ledna 2026 v 9:05:41 UTC

Generátor bludišť využívající algoritmus Rostoucí strom k vytvoření dokonalého bludiště. Tento algoritmus má tendenci generovat bludiště podobná algoritmu Hunt and Kill, ale s poněkud odlišným typickým řešením.

Tato stránka byla strojově přeložena z angličtiny, aby byla přístupná co největšímu počtu lidí. Strojový překlad bohužel ještě není dokonalá technologie, takže může dojít k chybám. Pokud si přejete, můžete si prohlédnout původní anglickou verzi zde:

Growing Tree Algorithm Maze Generator

Algoritmus Rostoucí strom je zajímavý, protože dokáže emulovat chování několika dalších algoritmů v závislosti na tom, jak je během generování vybrána další buňka. Implementace na této stránce používá přístup zaměřující se do šířky a podobný frontě.

Dokonalé bludiště je bludiště, ve kterém existuje přesně jedna cesta z kteréhokoli bodu bludiště do kteréhokoli jiného bodu. To znamená, že nemůžete skončit v kruhu, ale často narazíte na slepé uličky, které vás donutí se otočit a vrátit se zpět.

Zde vygenerované mapy bludiště obsahují výchozí verzi bez počátečních a cílových pozic, takže si je můžete určit sami: z jakéhokoli bodu v bludišti do jakéhokoli jiného bodu existuje řešení. Pokud se chcete inspirovat, můžete zapnout navrhovanou startovní a cílovou pozici - a dokonce si prohlédnout řešení mezi nimi.


Generování nového bludiště








O algoritmu rostoucího stromu

Algoritmus Rostoucí strom je flexibilní a výkonná metoda pro generování dokonalých bludišť. Algoritmus je zajímavý, protože dokáže emulovat chování několika dalších algoritmů pro generování bludišť, jako je Primův algoritmus, rekurzivní zpětné sledování a rekurzivní dělení, v závislosti na tom, jak vyberete další buňku ke zpracování.

Jak funguje algoritmus rostoucího stromu

Krok 1: Inicializace

  • Začněte s mřížkou nenavštívených buněk.
  • Vyberte náhodnou počáteční buňku a přidejte ji do seznamu.

Krok 2: Smyčka generování bludiště

  • Pokud seznam buněk není prázdný: Vyberte buňku ze seznamu na základě specifické strategie (vysvětleno níže). Vytvořte průchod z vybrané buňky k jednomu z jejích nenavštívených sousedů (vybraných náhodně). Přidejte souseda do seznamu, protože je nyní součástí bludiště. Pokud vybraná buňka nemá žádné nenavštívené sousedy, odeberte ji ze seznamu.

Krok 3: Ukončení

  • Algoritmus končí, když v seznamu již nejsou žádné další buňky, což znamená, že celé bludiště bylo vytesáno.

Strategie výběru buněk (flexibilita algoritmu)

Charakteristickým rysem algoritmu Growing Tree je způsob, jakým si vyberete, kterou buňku zpracovat dále. Tato volba dramaticky ovlivňuje vzhled bludiště:

Nejnovější buňka (chování podobné zásobníku) – Rekurzivní Backtracker:

  • Vždy vyberte naposledy přidanou buňku.
  • Vytváří dlouhé, klikaté chodby s mnoha slepými uličkami (jako bludiště prohledávající hloubku).
  • Bludiště mívají dlouhé chodby a snadno se řeší.

Náhodná buňka (randomizovaný Primův algoritmus):

  • Pokaždé vyberte ze seznamu náhodnou buňku.
  • Vytváří rovnoměrněji rozložené bludiště se složitými, propletenými cestami.
  • Méně dlouhých chodeb a více větvení.

Nejstarší buňka (chování podobné frontě):

  • Vždy vyberte nejstarší buňku v seznamu.
  • Generuje bludiště s rovnoměrnějším rozložením, podobně jako vzor prohledávání do šířky.
  • Krátké, křovinaté chodby s hustým propojením.
  • (Toto je verze implementovaná zde)

Hybridní přístupy:

Kombinujte strategie pro různé charakteristiky bludiště. Například:

  • 90 % nejnovější, 10 % náhodné: Vypadá většinou jako rekurzivní bludiště typu „backtracker“, ale s občasnými větvemi, které přerušují dlouhé chodby.
  • 50 % nejnovějších, 50 % nejstarších: Vyvažuje dlouhé chodby keřovitým porostem.

Další čtení

Pokud se vám tento příspěvek líbil, mohly by se vám líbit i tyto návrhy:


Sdílet na BlueskySdílejte na FacebookuSdílet na LinkedInSdílet na TumblrSdílet na XSdílet na LinkedInPřipnout na Pinterest

Mikkel Christensen

O autorovi

Mikkel Christensen
Mikkel je tvůrcem a majitelem webu miklix.com. Má více než 20 let zkušeností jako profesionální programátor/vývojář softwaru a v současné době pracuje na plný úvazek pro velkou evropskou IT společnost. Pokud zrovna nepíše blog, věnuje svůj volný čas široké škále zájmů, koníčků a aktivit, což se může do jisté míry odrážet v rozmanitosti témat na tomto webu.