Miklix

Wilsonův Algorithm Maze Generator

Vydáno: 16. února 2025 v 19:30:49 UTC

Generátor bludiště využívající Wilsonův algoritmus k vytvoření dokonalého bludiště. Tento algoritmus generuje všechna možná bludiště dané velikosti se stejnou pravděpodobností, takže teoreticky může generovat bludiště mnoha smíšených rozložení, ale protože existuje více možných bludišť s kratšími chodbami než delšími, častěji je uvidíte.

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:

Wilson's Algorithm Maze Generator

Wilsonův algoritmus je metoda náhodné procházky s vymazanou smyčkou, která generuje jednotné kostry pro vytvoření bludiště. To znamená, že všechna možná bludiště dané velikosti budou se stejnou pravděpodobností generována, což z něj činí nezaujatou techniku ​​generování bludiště. Wilsonův algoritmus lze považovat za vylepšenou verzi algoritmu Aldous-Broder, protože generuje bludiště se stejnými charakteristikami, ale běží mnohem rychleji, takže jsem se zde neobtěžoval implementovat algoritmus Aldous-Broder.

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 Wilsonově algoritmu

Wilsonův algoritmus pro generování uniformních překlenovacích stromů pomocí smyčky vymazané náhodné stěny vytvořil David Bruce Wilson.

Wilson původně zavedl tento algoritmus v roce 1996, když zkoumal náhodné kostry a Markovovy řetězce v teorii pravděpodobnosti. Ačkoli jeho práce byla primárně v matematice a statistické fyzice, algoritmus byl od té doby široce přijat pro generování bludiště díky své schopnosti produkovat dokonale jednotná bludiště.

Jak Wilsonův algoritmus funguje pro generování bludišť

Wilsonův algoritmus zajišťuje, že konečné bludiště je plně propojeno bez jakýchkoli smyček tím, že iterativně vyřezává cesty z nenavštívených buněk pomocí náhodných procházek.

Krok 1: Inicializujte

  • Začněte mřížkou vyplněnou stěnami.
  • Definujte seznam všech možných pasážových buněk.

Krok 2: Vyberte náhodnou počáteční buňku

  • Vyberte libovolnou náhodnou buňku a označte ji jako navštívenou. Toto slouží jako výchozí bod bludiště během generování.

Krok 3: Náhodná procházka s mazáním smyčky

  • Vyberte nenavštívenou buňku a začněte náhodnou procházku (pohybujte se v náhodných směrech).
  • Pokud procházka dosáhne již navštívené buňky, vymažte všechny smyčky v cestě.
  • Jakmile se procházka připojí k navštívené oblasti, označte všechny buňky na cestě jako navštívené.

Krok 4: Opakujte, dokud nebudou navštíveny všechny buňky :

  • Pokračujte ve výběru nenavštívených buněk a provádějte náhodné procházky, dokud nebude každá buňka součástí bludiště.
Sdílet na BlueskySdílejte na FacebookuSdílet na LinkedInSdílet na TumblrSdílet na XSdílet na LinkedInPřipnout na Pinterest

Mikkel Bang Christensen

O autorovi

Mikkel Bang 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.