[ Utilizare si implementare ]

UTILIZARE

Rularea programului in Scheme lanseaza generatorul de labirinturi de trei ori, cu intervale de pauza. Astfel se
genereaza cate un labirint pentru fiecare algoritm implementat.

 

IMPLEMENTARE

Programul este scris in Scheme.
Afisarea: fereastra grafica in care apare labirintul generat.
La nivel de programare, labirintul este stocat intr-o matrice pe trei nivele, 2 nivele coordonatele labirintului si un nivel “border”, “up” si “down”.

Border reprezinta marginea labirintului de care nu se poate trece la generare.
Up: indica un perete care poate fi coborat
Down: o cale libera intre doua celule adiacente

Functii mai speciale folosite:

(vector-ref v i) --> intoarce inregistrarea de pe pozitia “i” in vectorul v

(make-vector m) --> returneaza un vector de lungime m plin de zerouri

(vector-set! V i value) --> seteaza in vectorul V pe pozitia i valoarea “value”

Functii definite pentru usurarea implementarii:

{seteaza intr-o matrice pe pozitia i,j valoarea “value”}

(define matrix-set!

(lambda (matrix i j value)

(vector-set! (vector-ref matrix i) j value)

)

)

{intoarce valoarea de pe pozitia i,j din matricea “matrix”}

(define matrix-ref

(lambda (matrix i j)

(vector-ref (vector-ref matrix i) j)

)

)

{seteaza pe pozitia i,j,k in matricea cubica “cube” valoarea “value”}

(define cube-set!

(lambda (cube i j k value)

(vector-set! (vector-ref (vector-ref cube i) j) k value)

)

)

{intoarce valoarea aflata pe pozitia i,j,k in matricea cubica “cube”}

(define cube-ref

(lambda (cube i j k)

(vector-ref (vector-ref (vector-ref cube i) j) k)

)

)

Home | Algoritmi | Implementare | Codul sursa | Linkuri | Contact

Toate drepturile rezervate c2004