Motivaatio rekursion käytölle... |
Koodi tehtiin samanlaisella "akkumulaattori"-tekniikalla kuin edellisen tunnin merkkijonoja käyttänyt toista-hokema, eli keräsimme rekursiivisesti käskylistaa Turtlelle yhteen parametriin.Toteutimme tämän silmukka-kuvio-funktion käyttämällä sivu-ja-kulma-apufunktiota, joka teki ohjeet yhden sivun piirtämiseen.
(define (sivu-ja-kulma s k)
(list (forward s) (turn-left k)))
(define (silmukka-kuvio s k kerrat ohjeet)
(if (<= kerrat 0)
ohjeet
(silmukka-kuvio (+ s 5) k (sub1 kerrat) (append ohjeet (sivu-ja-kulma s k)))))
Ja tätä kutsuttiin REPL:stä näin:
(piirrä (silmukka-kuvio 1 90 20 '()))
Ja nyt vasta aukesikin ovi Racket-Turtle-leikille. Ryhmä piirteli innoissaan erilaisia Turtle-taideteoksia, joissa monimutkaisimmissa oli jopa 5000 viivanpätkää!
Tässä ryhmäni aikaansaannoksia!
P.S. Sateenkaaren värit saatiin aikaan käyttämällä random-funktiota eli arpomalla make-color:ille uudet RGB arvot:
(change-color (make-color (random 255) (random 255) (random 255)))
Ihan mielettömän hienoja! Terveisiä ja kehut taitaville oppilaillesi!
VastaaPoistaHienoja! Upeaa työtä!
VastaaPoistaIhan huikeita!!!!
VastaaPoista