🧩 Generator labiryntów — nawroty rekurencyjne, algorytm Prima, algorytm Wilsona
Interaktywne generowanie labiryntów czterema algorytmami: nawroty rekurencyjne (DFS), losowy algorytm Prima
O tej symulacji
Ten symulator generuje „idealny labirynt” — drzewo rozpinające siatki, w którym dokładnie jedna ścieżka łączy dowolne dwie komórki — za pomocą nawrotów rekurencyjnych (DFS), losowego algorytmu Prima, błądzenia losowego z usuwaniem pętli Wilsona lub algorytmu Kruskala. Po wygenerowaniu przeszukiwanie wszerz (BFS) rozwiązuje labirynt i podświetla najkrótszą trasę.
🔬 Co pokazuje
Ściany znikają pojedynczo w miarę jak wybrany algorytm przeszukuje siatkę, dzięki czemu widać, jak drzewo rozpinające rośnie komórka po komórce. Przycisk Solve BFS nakłada następnie gwarantowaną najkrótszą ścieżkę od startu do celu.
🎮 Jak korzystać
Wybierz algorytm, ustaw Rozmiar siatki (5–60) i Prędkość animacji suwakami, a następnie naciśnij Generuj, aby oglądać budowę krok po kroku, lub Natychmiast, aby przejść od razu do gotowego labiryntu. Solve BFS rysuje najkrótszą ścieżkę, gdy labirynt już istnieje.
💡 Czy wiesz, że?
Algorytm Wilsona jest jedynym z czterech, który generuje naprawdę jednorodne drzewo rozpinające — każde możliwe drzewo jest równie prawdopodobne — co stanowi silniejszą gwarancję niż DFS, Prim czy Kruskal, które faworyzują określone kształty labiryntu.
Najczęściej zadawane pytania
Co sprawia, że labirynt jest „idealny”?
Idealny labirynt ma dokładnie jedną ścieżkę między dowolnymi dwiema komórkami, bez pętli i bez odizolowanych obszarów — matematycznie jest to drzewo rozpinające. Wszystkie cztery algorytmy zawsze tworzą idealny labirynt, tylko różnymi strategiami.
Jak nawroty rekurencyjne (DFS) budują labirynt?
Algorytm wielokrotnie przechodzi do losowego nieodwiedzonego sąsiada, usuwając ścianę między nimi, i cofa się w ślepych zaułkach. Daje to długie, kręte korytarze ze stosunkowo niewieloma rozgałęzieniami, ponieważ posuwa się naprzód, dopóki nie zostanie zmuszony do skrętu.
Dlaczego labirynty Prima i Wilsona wyglądają inaczej niż DFS?
Algorytm Prima rośnie na zewnątrz od komórki-zalążka poprzez losowe krawędzie frontu, dając wiele krótkich rozgałęzień. Algorytm Wilsona wykorzystuje błądzenia losowe z usuwaniem pętli od nieodwiedzonych komórek, eliminując tendencję do krótkich rozgałęzień i dając jednorodne drzewo rozpinające.
Co znajduje Solve BFS?
Przeszukiwanie wszerz eksploruje poziom po poziomie od startu, więc za pierwszym razem, gdy dociera do celu, znalazło już najkrótszą ścieżkę liczoną w komórkach, ponieważ każdy ruch kosztuje tyle samo.
Dlaczego algorytm Wilsona może wydawać się wolniejszy w generowaniu?
Jego błądzenia losowe mogą wędrować długo, zanim natrafią na rosnący labirynt, zwłaszcza na początku. Ten zmienny czas działania jest ceną za gwarancję naprawdę jednorodnego losowego labiryntu.