;;; Scheme Recursive Art Contest Entry ;;; ;;; Please do not include your name or personal info in this file. ;;; ;;; Title: ;;; ;;; Description: ;;; ; define colors (define black "#000000") (define gray "#D3D2E0") (define white "#FFFFFF") (define gold "#FFDF00") (define beige "#FFE8D2") (define red "#FF73AA") (define blue "#0101FF") (define orange "#FFA500") ; define pixel rows and compile into 1 list (define row1 `((,white 15) (,black 1) (,white 3) (,black 1) (,white 10))) (define row2 `((,white 10) (,black 1) (,white 3) (,black 2) (,white 2) (,black 2) (,white 10))) (define row3 `((,white 10) (,black 2) (,white 1) (,black 1) (,gold 1) (,black 1) (,white 1) (,black 1) (,gold 1) (,black 1) (,white 10))) (define row4 `((,white 10) (,black 1) (,gold 1) (,black 1) (,gold 2) (,black 2) (,gold 2) (,black 1) (,white 1) (,black 2 ) (,white 7))) (define row5 `((,white 10) (,black 1) (,gold 4) (,black 1) (,gold 3) (,black 2) (,gold 1) (,black 1) (,white 7))) (define row6 `((,white 6) (,black 5) (,gold 11) (,black 1) (,white 6))) (define row7 `((,white 7) (,black 1) (,gold 14) (,black 4) (,white 4))) (define row8 `((,white 8) (,black 1) (,gold 15) (,black 1) (,white 5))) (define row9 `((,white 7) (,black 1) (,gold 15) (,black 1) (,white 6))) (define row10 `((,white 8) (,black 1) (,gold 14) (,black 1) (,white 6))) (define row11 `((,white 7) (,black 1) (,gold 16) (,black 1) (,white 5))) (define row12 `((,white 7) (,black 1) (,gold 1) (,black 2) (,gold 10) (,blue 1) (,black 2) (,white 6))) (define row13 `((,white 7) (,black 3) (,blue 1) (,black 10) (,blue 1) (,black 1) (,white 7))) (define row14 `((,white 9) (,black 1) (,blue 2) (,gray 8) (,blue 2) (,black 1) (,white 7))) (define row15 `((,white 8) (,black 2) (,blue 2) (,gray 8) (,blue 2) (,black 2) (,white 6))) (define row16 `((,white 8) (,black 1) (,beige 2) (,black 2) (,gray 6) (,black 2) (,beige 2) (,black 1) (,white 6))) (define row17 `((,white 8) (,black 1) (,beige 2) (,black 1) (,white 1) (,blue 1) (,black 4) (,blue 1) (,white 1) (,black 1) (,beige 2) (,black 1) (,white 6))) (define row18 `((,white 8) (,black 3) (,beige 1) (,white 1) (,black 1) (,beige 4) (,black 1) (,white 1) (,beige 1) (,black 2) (,white 6))) (define row19 `((,white 9) (,black 2) (,beige 10) (,black 4) (,white 5))) (define row20 `((,white 8) (,black 2) (,gray 1) (,black 1) (,beige 8) (,black 1) (,gray 1) (,black 2) (,orange 1) (,black 1) (,white 4))) (define row21 `((,white 7) (,black 1) (,blue 1) (,black 1) (,gray 2) (,black 1) (,beige 6) (,black 1) (,gray 2) (,black 1) (,orange 2) (,black 1) (,white 4))) (define row22 `((,white 6) (,black 1) (,blue 2) (,black 1) (,gray 3) (,black 6) (,gray 3) (,black 1) (,orange 3) (,black 1) (,white 3))) (define row23 `((,white 5) (,black 1) (,blue 4) (,black 1) (,gray 3) (,orange 4) (,gray 3) (,black 1) (,blue 1) (,black 1) (,orange 2) (,black 1) (,white 3))) (define row24 `((,white 4) (,black 3) (,blue 4) (,black 1) (,gray 2) (,orange 5) (,gray 1) (,black 1) (,blue 2) (,black 1) (,orange 1) (,black 1) (,red 1) (,black 1) (,white 2))) (define row25 `((,white 4) (,black 1) (,orange 1) (,blue 6) (,black 3) (,orange 3) (,black 2) (,blue 4) (,black 2) (,red 1) (,black 1) (,white 2))) (define row26 `((,white 3) (,black 1) (,orange 3) (,black 1) (,blue 6) (,black 1) (,orange 2) (,black 2) (,blue 4) (,black 1) (,orange 1) (,black 1) (,red 1) (,black 1) (,white 2))) (define row27 `((,white 3) (,black 1) (,orange 4) (,black 2) (,blue 4) (,black 1) (,orange 3) (,black 1) (,blue 3) (,black 2) (,orange 2) (,black 1) (,white 3))) (define row28 `((,white 2) (,black 1) (,orange 6) (,black 4) (,blue 1) (,black 1) (,orange 3) (,black 5) (,orange 3) (,black 2) (,white 3))) (define row29 `((,white 1) (,black 2) (,orange 5) (,black 2) (,orange 3) (,black 2) (,orange 3) (,black 1) (,orange 2) (,black 2) (,orange 2) (,black 1) (,orange 1) (,black 1) (,white 2))) (define row30 `((,white 1) (,black 1) (,orange 5) (,black 3) (,orange 12) (,black 3) (,orange 3) (,black 1) (,white 1))) (define row31 `((,white 1) (,black 1) (,orange 6) (,black 3) (,orange 7) (,black 1) (,orange 2) (,black 2) (,orange 4) (,black 2) (,white 1))) (define row32 `((,white 2) (,black 1) (,orange 4) (,black 5) (,orange 5) (,black 1) (,orange 1) (,black 8) (,beige 1) (,black 1) (,white 1))) (define row33 `((,white 1) (,black 1) (,beige 1) (,black 7) (,orange 1) (,black 10) (,orange 1) (,black 2) (,beige 4) (,black 1) (,white 1))) (define row34 `((,white 1) (,black 1) (,beige 5) (,black 2) (,orange 3) (,black 7) (,orange 4) (,black 2) (,beige 2) (,black 2) (,white 1))) (define row35 `((,white 1) (,black 1) (,beige 4) (,black 3) (,orange 15) (,black 4) (,white 2))) (define row36 `((,white 2) (,black 1) (,beige 2) (,black 1) (,blue 1) (,black 2) (,orange 16) (,black 1) (,white 3))) (define row37 `((,white 3) (,black 3) (,blue 1) (,black 1) (,orange 18) (,black 1) (,white 3))) (define row38 `((,white 4) (,black 1) (,blue 2) (,black 1) (,orange 18) (,black 1) (,white 3))) (define row39 `((,white 4) (,black 1) (,blue 1) (,black 1) (,orange 20) (,black 1) (,white 2))) (define row40 `((,white 4) (,black 1) (,blue 1) (,black 1) (,orange 8) (,black 3) (,orange 9) (,black 1) (,white 2))) (define row41 `((,white 5) (,black 1) (,orange 8) (,black 2) (,white 2) (,black 2) (,orange 7) (,black 1) (,white 2))) (define row42 `((,white 4) (,black 1) (,orange 7) (,black 2) (,white 4) (,black 2) (,orange 6) (,black 1) (,white 2))) (define row43 `((,white 4) (,black 1) (,orange 7) (,black 1) (,white 5) (,black 1) (,orange 6) (,black 2) (,white 2))) (define row44 `((,white 5) (,black 1) (,orange 5) (,black 1) (,white 6) (,black 2) (,orange 4) (,black 2) (,white 3))) (define row45 `((,white 6) (,black 1) (,orange 5) (,black 1) (,white 6) (,black 2) (,orange 4) (,black 2) (,white 3))) (define row46 `((,white 5) (,black 3) (,orange 3) (,black 2) (,white 7) (,black 6) (,white 4))) (define row47 `((,white 5) (,black 1) (,blue 2) (,black 4) (,white 8) (,black 1) (,blue 5) (,black 1) (,white 3))) (define row48 `((,white 4) (,black 1) (,blue 5) (,black 1) (,white 9) (,black 1) (,blue 6) (,black 1) (,white 2))) (define row49 `((,white 3) (,black 1) (,blue 5) (,black 1) (,white 11) (,black 2) (,blue 5) (,black 1) (,white 1))) (define row50 `((,white 3) (,black 1) (,beige 2) (,blue 3) (,black 1) (,white 13) (,black 2) (,blue 1) (,beige 2) (,black 1) (,white 1))) (define row51 `((,white 4) (,black 5) (,white 15) (,black 5) (,white 1))) (define lists-of-pixels (list row1 row2 row3 row4 row5 row6 row7 row8 row9 row10 row11 row12 row13 row14 row15 row16 row17 row18 row19 row20 row21 row22 row23 row24 row25 row26 row27 row28 row29 row30 row31 row32 row33 row34 row35 row36 row37 row38 row39 row40 row41 row42 row43 row44 row45 row46 row47 row48 row49 row50 row51)) ; define pixel size (pixelsize 10) ; define functions to draw each pixel, each line (define (draw-pixel curr-pixel rest-pixels arg left-margin) (cond ((= 1 rest-pixels) (pixel left-margin arg curr-pixel)) (else (pixel left-margin arg curr-pixel) (draw-pixel curr-pixel (- rest-pixels 1) arg (+ left-margin 1)) ))) (define (draw-line list-of-pixels arg left-margin) (cond ((null? list-of-pixels) nil) (else (draw-pixel (car (car list-of-pixels)) (car (cdr (car list-of-pixels))) arg left-margin) (draw-line (cdr list-of-pixels) arg (+ left-margin (car (cdr (car list-of-pixels))))) ))) ; draw (define (draw) (define (draw-image lists-of-pixels vertical-displacement left-margin) (cond ((null? lists-of-pixels) nil) (else (draw-line (car lists-of-pixels) vertical-displacement left-margin) (draw-image (cdr lists-of-pixels) (- vertical-displacement 1) left-margin) ))) (draw-image lists-of-pixels 64 0) ) ; Please leave this last line alone. You may add additional procedures above ; this line. (draw)