Należy napisać program labirynt, w którym ścianki będą zaznaczane ‘#’ , a wolne pola po których można chodzić przez ‘.’. Labirynt ma za każdym razem wyglądać inaczej. A jak już będzie labirynt, to powinien poprosić o podanie punktu i wskazać drogę do niego zmieniając wolne pola z ‘.’ na ‘x’. Przykładowy labirynt z zaznaczoną drogą wyglądać powinien tak:
#########
#A#xxxxx#
#x#x###x#
#xxx#.#x#
#####.#x#
#...#xxx#
#.#.#x###
#.#..xxB#
#########
Będę wdzięczny za rozwiązanie ;]
Labirynt w C
-
- Użytkownik
- Posty: 45
- Rejestracja: 9 sty 2008, o 12:22
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 4 razy
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Labirynt w C
Proponuję oprogramować graf na dytamicznej strukturze lub jak tego nie potrafisz użyć zwykłej tablicy. Do znalezienia drogi sugeruję użyć np. metodę z nawrotami czy w głąb. Co do losowania to mam taką radę, wylosuj najpierw spójną drogę, a dopiero potem wypełnij resztę pól ściankami. Z pomocnej literatury polecam książkę M.M.Sysło "Piramidy, szyszki i inne konstrukcje algorytmiczne".
-
- Użytkownik
- Posty: 45
- Rejestracja: 9 sty 2008, o 12:22
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 4 razy
Labirynt w C
O kurcze. To nie dla mnie ;/kadiii pisze:Proponuję oprogramować graf na dytamicznej strukturze lub jak tego nie potrafisz użyć zwykłej tablicy. Do znalezienia drogi sugeruję użyć np. metodę z nawrotami czy w głąb. Co do losowania to mam taką radę, wylosuj najpierw spójną drogę, a dopiero potem wypełnij resztę pól ściankami. Z pomocnej literatury polecam książkę M.M.Sysło "Piramidy, szyszki i inne konstrukcje algorytmiczne".
Labirynt w C
przejscie nie jest trudne
a zabawę zaczynamyprawda, że nie skomplikowane?
Kod: Zaznacz cały
nastkrok(x, y)
if t[x,y] != '.'
exit
if (x==meta_x) && (y==meta_y)
mam rozwiazanie
else
kroki=kroki+1
droga[kroki].x=x
droga[kroki].y=y
nastkrok(x-1, y)
nastkrok(x+1, y)
nastkrok(x, y-1)
nastkrok(x, y-1)
kroki=kroki-1
Kod: Zaznacz cały
kroki=0
nastkrok(start_x, start_y)