Dawno mnie tu nie było ale do rzeczy.
Dotychczas używałem następującego algorytmu:
- zapisz tablicę 2d liczbami od 1 do pole tablicy (dla tablicy 2x3 jest to od 1 do 6) zapis ten przebiega losowo,
- wylosuj współrzędne pokoju oraz zmienną odpowiedzialną za kierunek (N, S, W, E),
- jeśli idąc w wylosowanym kierunku 1 pole nie wyjdę z zakresu oraz numer w polu początkowym będzie różny od pola w pokoju kolejnym to wpisuję w tablicy służącej do przetrzymywania informacji o przejściach tą informację oraz zamieniam wszystkie wyższe numery na niższe:
[INDENT]np. jeśli otwieram drzwi między pokojem o numerku 13 i 69 to zamieniam wszystkie numerki pokoi 69 na 13[/INDENT]
i kod taki wykonuje się aż każdy pokój będzie mieć numerek 1.
Może ktoś z Was zaproponuje lepszy algorytm do generowania labiryntu prostokątnego o dość sporych wymiarach z zastrzeżeniem, że z dowolnego jednego pokoju można dojść do dowolnego innego jakąś drogą.
Za każdą odpowiedź serdecznie dziękuję.