Scheme Turtle 5

Aus ProgrammingWiki
Archivierte Version vom 2008-12-13T20:52:02+00:00. Aktuelle Version

Random-Walk

Diese Prozedur verdeutlicht den rekursiven Abstieg/Aufstieg, wie er bei echter Rekursion stattfindet, grafisch. Jeder rekursiver Aufruf erzeugt eine Strecke, deren Richtung und Länge zufällig gewählt sind. Nach n Strecken dieser Art kehrt die Turtle zurück, indem alle Strecken (nach dem Stapelprinzip) rückwärts zurückgelegt werden. Vorher wird der Stift zum Radiergummi gemacht, sodass die gezeichnete Linie gelöscht wird. Alternativ kann eine andere Zeichenfarbe gewählt werden.

<eval> (define random</eval>

 (random-maker 19716))  ;; Anfangswert verändern!

(clear canvas) (move turtle 200 310) (pencolor turtle 0 0 200)

(define random-walk

 (lambda (angle length n turtle)
   (if (= n 0)
       (penerase turtle)
       ;(pencolor turtle 220 0 0)
       (begin          
         (forward turtle length)
         (right turtle angle)
         (random-walk (+ 5 (random angle))(+ 5 (random length)) (- n 1) turtle)
         (left turtle angle)
         (backward turtle length)))))

(random-walk 360 20 100 turtle)

Ihr Browser unterstützt Canvas nicht.