;; Draws a pyramid with turtle graphics in Scheme ;; The function is "pyramid", the two parameters are "steps" and "len" ;; Use Language PLT/Pretty Big and teachpack turtles.ss (define (pyramid steps len) (begin (do ([i 0 (+ i 1)]) [(>= i steps)] (turn 90) (draw len) (turn -90) (draw len)) (do ([i 0 (+ i 1)]) [(>= i steps)] (draw len) (turn -90) (draw len) (turn 90))) (turn 180) (draw (* len steps 2)) (turn 180)) ;; command to open the turtles window (turtles) ;; Draws a pyramid with turtle graphics in Scheme ;; The function is "pyramid", the two parameters are "steps" and "len" ;; Use Language PLT/Pretty Big and teachpack turtles.ss (define (pyramid steps len) (begin (do ([i 0 (+ i 1)]) [(>= i steps)] (turn 90) (draw len) (turn -90) (draw len)) (do ([i 0 (+ i 1)]) [(>= i steps)] (draw len) (turn -90) (draw len) (turn 90))) (turn 180) (draw (* len steps 2)) (turn 180)) ;; command to open the turtles window (define (drawSquare side) (do ([i 0 (+ i 1)]) [(>= i 4)] (draw side) (turn 90))) (define (rowOfSquares n s) (do ([i 0 (+ i 1)]) [(>= i n)] (drawSquare s) (move (* s 2)))) (define (pyramid1 n s) (do ([i 0 (+ i 1)]) [(>= i n)] (rowOfSquares i s) (turn 180) (move (* 2 s i)) (turn 90) (move (* 2 s)) (turn 90) )) (define (pyramid2 n s) (do ([i 0 (+ i 1)]) [(>= i n)] (rowOfSquares (+ (* 2 i) 1) s) (turn 180) (move (+ (* 2 s (+ (* 2 i) 1)) s s)) (turn 90) (move (* 2 s)) (turn 90) )) (define (checkerboard n s) (do ([i 0 (+ i 1)]) [(>= i n)] (rowOfSquares n s) (turn 180) (move (* n s 2)) (turn 90) (move (* 2 s)) (turn 90) )) (turtles)