;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: ;;; ;;; Description: ;;; ; REPEAT RECURSIVE FUNCTION (define (repeat k fn type) (if (> k 0) (begin (cond ((equal? type 90) (color "#664106")) ((equal? type 120) (color2 k)) ((equal? type 1) (color1 k)) ((equal? type 2) (color4 k)) ((equal? type 0) (color0 k)) ((equal? type 9) (color9 k)) (else (color "white"))) (fn) (repeat (- k 1) fn type)) )) ; TREE (define (shape fn deg) (repeat 3 (lambda () (fn)(lt deg)) deg)) (define (sier d k fn2 deg) (shape (lambda () (if (= k 1) (fd d) (fn2 d k deg))) deg)) (define (leg d k deg) (sier (/ d 2) (- k 1) leg deg) (penup) (fd d) (pendown)) ; TRUNK (define (stack d k deg) (sier (/ d 2.5) 1 stack deg) (penup) (fd (/ d 2)) (pendown)) ;ORNAMENT (define (ornament) (repeat 22 (lambda () (fd 20) (repeat 1 (lambda () (fd 4) (rt 68) (lt 59)) 11) (rt 144)) 0)) ; DRAW!!!!! (define (draw) (bgcolor "black") (speed 99999) (reset -99 -26) ; TREE (rt 90) (sier 170 7 leg 120) ; TRUNK (reset -34 -68) (begin_fill) (sier 100 5 stack 90) (end_fill) ; big surrounding thing (setdir) (reset 250 -160) (repeat 120 (lambda () (fd 500) (repeat 3 (lambda () (fd 9) (rt 48) (lt 59)) 0) (rt 144)) 0) ;STAR THING (reset 5 123) (repeat 28 (lambda () (fd 26) (repeat 5 (lambda () (fd 3) (rt 70) (lt 59)) 9) (rt 144)) 9) (setdir) ; flowery thing (reset -45 -119) (repeat 15 (lambda() (fd 39) (repeat 54 (lambda () (fd 23) (repeat 3 (lambda () (fd 1) (rt 48) (lt 59)) 0) (rt 144)) 2) (rt 150)) 0) ;SNOW (reset 50 83) (ornament) (reset -132 0) (ornament) (reset -66 93) (ornament) (reset 100 33) (ornament) (hideturtle) (exitonclick)) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)