Miklix

Rastúci strom Algoritmus bludisko generátor

Publikované: 16. februára 2025 o 21:37:07 UTC
Posledná aktualizácia: 12. januára 2026 o 9:05:54 UTC

Generátor bludiska využívajúci algoritmus Rastúci strom na vytvorenie dokonalého bludiska. Tento algoritmus má tendenciu generovať bludiská podobné algoritmu Hunt and Kill, ale s trochu odlišným typickým riešením.

Táto stránka bola strojovo preložená z angličtiny, aby bola prístupná čo najväčšiemu počtu ľudí. Žiaľ, strojový preklad ešte nie je dokonalá technológia, takže sa môžu vyskytnúť chyby. Ak chcete, môžete si pozrieť pôvodnú anglickú verziu tu:

Growing Tree Algorithm Maze Generator

Algoritmus Rastúci strom je zaujímavý, pretože dokáže emulovať správanie niekoľkých iných algoritmov v závislosti od toho, ako sa počas generovania vyberie ďalšia bunka. Implementácia na tejto stránke používa prístup zameraný na šírku a podobný frontu.

Dokonalé bludisko je bludisko, v ktorom existuje presne jedna cesta z ktoréhokoľvek bodu bludiska do ktoréhokoľvek iného bodu. To znamená, že nemôžete skončiť v kruhu, ale často narazíte na slepé uličky, ktoré vás prinútia otočiť sa a vrátiť sa späť.

Tu vygenerované mapy bludiska obsahujú predvolenú verziu bez počiatočnej a cieľovej pozície, takže si ich môžete určiť sami: z ľubovoľného bodu bludiska do ľubovoľného iného bodu bude existovať riešenie. Ak sa chcete inšpirovať, môžete zapnúť navrhovanú počiatočnú a cieľovú pozíciu - a dokonca si pozrieť riešenie medzi nimi.


Generovanie nového bludiska








O algoritme rastúceho stromu

Algoritmus Rastúci strom je flexibilná a výkonná metóda na generovanie dokonalých bludísk. Algoritmus je zaujímavý, pretože dokáže emulovať správanie niekoľkých ďalších algoritmov na generovanie bludísk, ako je Primov algoritmus, rekurzívne spätné sledovanie a rekurzívne delenie, v závislosti od toho, ako vyberiete ďalšiu bunku na spracovanie.

Ako funguje algoritmus rastúceho stromu

Krok 1: Inicializácia

  • Začnite s mriežkou nenavštívených buniek.
  • Vyberte náhodnú počiatočnú bunku a pridajte ju do zoznamu.

Krok 2: Slučka generovania bludiska

  • Pokiaľ zoznam buniek nie je prázdny: Vyberte bunku zo zoznamu na základe špecifickej stratégie (vysvetlenej nižšie). Vytvorte priechod z vybranej bunky k jednému z jej nenavštívených susedov (vybraných náhodne). Pridajte suseda do zoznamu, pretože je teraz súčasťou bludiska. Ak vybraná bunka nemá žiadnych nenavštívených susedov, odstráňte ju zo zoznamu.

Krok 3: Ukončenie

  • Algoritmus končí, keď v zozname už nie sú žiadne bunky, čo znamená, že celé bludisko je vytesané.

Stratégie výberu buniek (flexibilita algoritmu)

Rozhodujúcou črtou algoritmu Growing Tree je spôsob, akým si vyberiete, ktorú bunku spracujete ďalej. Táto voľba dramaticky ovplyvňuje vzhľad bludiska:

Najnovšia bunka (správanie podobné zásobníku) – Rekurzívny Backtracker:

  • Vždy vyberte naposledy pridanú bunku.
  • Vytvára dlhé, kľukaté chodby s mnohými slepými uličkami (ako bludisko s prehľadávaním do hĺbky).
  • Bludiská majú tendenciu mať dlhé chodby a sú ľahko riešiteľné.

Náhodná bunka (náhodný Primov algoritmus):

  • Zakaždým vyberte zo zoznamu náhodnú bunku.
  • Vytvára rovnomernejšie rozložené bludisko so zložitými, zamotanými cestami.
  • Menej dlhých chodieb a viac rozvetvenia.

Najstaršia bunka (správanie podobné frontu):

  • Vždy vyberte najstaršiu bunku v zozname.
  • Generuje bludiská s rovnomernejším rozložením, podobne ako vzor vyhľadávania do šírky.
  • Krátke, husto zarastené chodby s hustým prepojením.
  • (Toto je verzia implementovaná tu)

Hybridné prístupy:

Kombinujte stratégie pre rôzne charakteristiky bludiska. Napríklad:

  • 90 % najnovšie, 10 % náhodné: Vyzerá prevažne ako rekurzívne bludisko s návratom do pôvodného stavu, ale s občasnými vetvami, ktoré prerušujú dlhé chodby.
  • 50 % najnovšie, 50 % najstaršie: Vyvažuje dlhé chodby hustým porastom.

Ďalšie čítanie

Ak sa vám tento príspevok páčil, možno sa vám budú páčiť aj tieto návrhy:


Zdieľať na BlueskyZdieľať na FacebookuZdieľať na LinkedInZdieľať na TumblrZdieľať na XZdieľať na LinkedInPripnúť na Pintereste

Mikkel Christensen

O autorovi

Mikkel Christensen
Mikkel je tvorcom a majiteľom miklix.com. Má viac ako 20 rokov skúseností ako profesionálny počítačový programátor/vývojár softvéru a v súčasnosti pracuje na plný úväzok pre veľkú európsku IT korporáciu. Keď práve nepíše blog, venuje svoj voľný čas širokej škále záujmov, koníčkov a aktivít, čo sa môže do istej miery odrážať v rôznorodosti tém na tejto webovej lokalite.