Miklix

Wilsonov algoritam Generator labirinta

Objavljeno: 16. februar 2025. u 19:37:52 UTC
Posljednje ažurirano: 12. januar 2026. u 09:03:39 UTC

Generator labirinata koji koristi Wilsonov algoritam za kreiranje savršenog labirinta. Ovaj algoritam generira sve moguće labirinte date veličine s istom vjerovatnoćom, tako da teoretski može generirati labirinte mnogih miješanih rasporeda, ali budući da postoji više mogućih labirinata s kraćim hodnicima nego s dužim, češće ćete ih viđati.

Ova stranica je mašinski prevedena sa engleskog kako bi bila dostupna što većem broju ljudi. Nažalost, mašinsko prevođenje još nije usavršena tehnologija, pa može doći do grešaka. Ako želite, možete pogledati originalnu englesku verziju ovdje:

Wilson's Algorithm Maze Generator

Wilsonov algoritam je metoda slučajnog hoda s brisanjem petlji koja generira uniformna obuhvatna stabla za kreiranje lavirinata. To znači da je podjednako vjerovatno da će se generirati svi mogući lavirinti date veličine, što ga čini nepristrasnom tehnikom generiranja lavirinata. Wilsonov algoritam se može smatrati poboljšanom verzijom Aldous-Broder algoritma, jer generira lavirinte s identičnim karakteristikama, ali radi mnogo brže, tako da se nisam trudio implementirati Aldous-Broder algoritam ovdje.

Savršen labirint je labirint u kojem postoji tačno jedan put od bilo koje tačke u labirintu do bilo koje druge tačke. To znači da ne možete završiti u krugu, ali ćete često nailaziti na slijepe ulice, prisiljavajući vas da se okrenete i vratite.

Mape lavirinta koje se ovdje generiraju uključuju zadanu verziju bez ikakvih početnih i završnih pozicija, tako da ih možete sami odlučiti: postojat će rješenje od bilo koje točke u lavirintu do bilo koje druge točke. Ako želite inspiraciju, možete omogućiti predloženi početni i ciljni položaj - pa čak i vidjeti rješenje između njih.


Stvorite novi labirint








O Wilsonovom algoritmu

Wilsonov algoritam za generiranje uniformnih razapinjućih stabala korištenjem slučajnog zida s obrisanom petljom kreirao je David Bruce Wilson.

Wilson je prvobitno predstavio ovaj algoritam 1996. godine dok je istraživao slučajna razapinjuća stabla i Markovljeve lance u teoriji vjerovatnoće. Iako je njegov rad prvenstveno bio u matematici i statističkoj fizici, algoritam je od tada široko prihvaćen za generisanje lavirinata zbog svoje sposobnosti da proizvede savršeno ujednačene lavirinte.

Kako Wilsonov algoritam funkcionira za generiranje labirinta

Wilsonov algoritam osigurava da je konačni labirint potpuno povezan bez ikakvih petlji iterativnim rezbarenjem puteva iz neposjećenih ćelija korištenjem slučajnih šetnji.

Korak 1: Inicijalizacija

  • Počnite s mrežom ispunjenom zidovima.
  • Definišite listu svih mogućih ćelija prolaza.

Korak 2: Odaberite slučajnu početnu ćeliju

  • Odaberite bilo koju slučajnu ćeliju i označite je kao posjećenu. Ovo služi kao početna tačka lavirinta tokom generiranja.

Korak 3: Slučajno hodanje s brisanjem petlje

  • Odaberite neposjećenu ćeliju i započnite nasumičnu šetnju (kretanje u nasumičnim smjerovima).
  • Ako šetnja stigne do već posjećene ćelije, obrišite sve petlje u putanji.
  • Kada se šetnja poveže sa posjećenom regijom, označite sve ćelije na putanji kao posjećene.

Korak 4: Ponavljajte dok se ne posjete sve ćelije:

  • Nastavite odabirati neposjećene ćelije i izvoditi nasumične šetnje sve dok svaka ćelija ne bude dio labirinta.

Dodatno čitanje

Ako vam se svidio ovaj post, možda će vam se svidjeti i ovi prijedlozi:


Podijelite na BlueskyPodijelite na FacebookuPodijelite na LinkedIn-uPodijelite na Tumblr-uPodijeli na XPodijelite na LinkedIn-uPrikači na Pinterest

Mikkel Christensen

O autoru

Mikkel Christensen
Mikkel je kreator i vlasnik miklix.com. Ima preko 20 godina iskustva kao profesionalni kompjuterski programer/programer softvera i trenutno je zaposlen sa punim radnim vremenom u velikoj evropskoj IT korporaciji. Kada ne piše blog, svoje slobodno vrijeme provodi na širokom spektru interesovanja, hobija i aktivnosti, što se u određenoj mjeri može odraziti na različite teme koje se obrađuju na ovoj web stranici.