(define overkill (lambda (val1 val2 val3) (let* ((img (create-image 1000 1000 RGB)) (background-color (list (list 255 253 46) (list 247 183 255) RED (list 12 64 116) (list 130 15 15))) (hair-colors (list GREEN PURPLE RED BROWN BLUE)) (draw-background (lambda (val3) (set-bgcolor (list-ref background-color (modulo val3 5))) (if (< val3 5) (begin (select-all img) (fill-bgcolor img)) (begin (select-all img) (fill-bgcolor img) (set-brush "Circle (03)") (set-fgcolor BLACK) (speed-lines 49))))) (speed-lines (lambda (num) (set! y 0) (while (<= y 50) (line img (+ (random 1000) 200) (* y 20) (- (random 1000) 200) (* y 20)) (set! y (+ y 1))))) (draw-face (lambda (val1) (cond ((eqv? (modulo val1 5) 0) (draw-schoolgirl val1)) ((eqv? (modulo val1 5) 1) (draw-robot val1)) ((eqv? (modulo val1 5) 2) (draw-old-man val1)) ((eqv? (modulo val1 5) 3) (draw-fighter val1)) ((eqv? (modulo val1 5) 4) (draw-catgirl val1))))) (draw-eyes (lambda (val3) (cond ((eqv? (modulo val3 5) 0) (suprised)) ((eqv? (modulo val3 5) 1) (happy)) ((eqv? (modulo val3 5) 2) (angry)) ((eqv? (modulo val3 5) 3) (sad)) ((eqv? (modulo val3 5) 4) (mad))))) (angry (lambda () (set-brush "Circle (11)") (set-fgcolor BLACK) (line img 448 834 626 834) (line img 462 662 364 604) (line img 462 662 364 720) (line img 600 662 700 604) (line img 600 662 700 720) (select-nothing img) )) (sad (lambda () (set-brush "Circle (11)") ;left eye (select-ellipse img REPLACE 326 641 143 180) (select-rectangle img SUBTRACT 0 705 1000 230) (set-fgcolor WHITE) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 370 678 50 50) (select-rectangle img SUBTRACT 0 705 1000 230) (fill-fgcolor img) ;right eye (select-ellipse img REPLACE 586 641 143 180) (select-rectangle img SUBTRACT 0 705 1000 230) (set-fgcolor WHITE) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 630 678 50 50) (select-rectangle img SUBTRACT 0 705 1000 230) (fill-fgcolor img) ;mouth (select-ellipse img REPLACE 385 815 265 180) (select-ellipse img SUBTRACT 396 826 243 180) (select-rectangle img SUBTRACT 0 850 1000 330) (set-fgcolor BLACK) (fill-fgcolor img) (select-nothing img) )) (suprised (lambda () ;left eye (select-ellipse img REPLACE 326 641 143 143) (set-fgcolor WHITE) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 370 678 50 50) (fill-fgcolor img) ;right eye (select-ellipse img REPLACE 586 641 143 143) (set-fgcolor WHITE) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 630 678 50 50) (fill-fgcolor img) (select-ellipse img REPLACE 486 841 70 80) (fill-fgcolor img) (select-nothing img) )) (happy (lambda () ;left eye (select-ellipse img REPLACE 315 630 165 180) (select-ellipse img SUBTRACT 326 641 143 180) (select-rectangle img SUBTRACT 0 705 1000 230) (set-fgcolor BLACK) (fill-fgcolor img) ;right eye (select-ellipse img REPLACE 575 630 165 180) (select-ellipse img SUBTRACT 586 641 143 180) (select-rectangle img SUBTRACT 0 705 1000 230) (set-fgcolor BLACK) (fill-fgcolor img) (select-ellipse img REPLACE 460 800 70 70) (set-brush "Circle (07)") (stroke img) (select-ellipse img REPLACE 530 800 70 70) (set-brush "Circle (07)") (stroke img) (set-fgcolor (list 255 232 232)) (select-rectangle img REPLACE 450 798 160 37) (fill-fgcolor img) (select-nothing img) )) (mad (lambda () (select-ellipse img REPLACE 270 352 250 350) (select-rectangle img SUBTRACT 0 0 1000 646) (set-fgcolor RED) (set-brush "Circle (11)") (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 535 352 250 350) (select-rectangle img SUBTRACT 0 0 1000 646) (set-fgcolor RED) (set-brush "Circle (11)") (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 435 780 165 180) (select-ellipse img SUBTRACT 446 791 143 180) (select-rectangle img SUBTRACT 0 850 1000 330) (set-fgcolor BLACK) (fill-fgcolor img) (select-nothing img))) (draw-catgirl (lambda (val2) (draw-background (random 10)) (set-fgcolor BLACK) (set-brush "Circle (19)") (line img 326 312 444 434) (line img 326 312 310 480) (line img 778 312 774 480) (line img 778 312 666 434) (line img 762 346 684 438) (line img 762 346 760 470) (line img 338 350 332 450) (line img 338 345 410 422) (line img 748 368 748 375) (set-fgcolor (list 255 232 232)) (line img 354 446 352 378) (line img 402 428 352 378) (line img 746 398 702 450) (line img 746 398 743 476) (line img 364 412 369 411) (line img 730 432 730 431) (set-brush "Circle (05)") (select-ellipse img REPLACE 250 400 550 550) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-nothing img) )) (draw-robot (lambda (val2) (select-rectangle img REPLACE 250 400 550 550) (set-brush "Circle (05)") (set-fgcolor BLAH_GREY) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-nothing img) (line img 525 400 525 300) (select-rectangle img REPLACE 500 300 50 50) (set-fgcolor (list-ref hair-colors (modulo (random 10) 5))) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-nothing img))) (draw-hair (lambda (val val5) (let ((hair (list-ref hair-colors (modulo val5 5)))) ;BASE HAIR (select-ellipse img REPLACE 175 400 700 450) (select-ellipse img SUBTRACT 240 480 575 500) (set-brush "Circle (05)") (set-fgcolor hair) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (set-fgcolor hair) ;left Hair (if (eqv? val 1) (select-ellipse img ADD 295 350 700 450) (select-ellipse img REPLACE 295 350 700 450)) (select-ellipse img SUBTRACT 350 420 575 500) (select-rectangle img SUBTRACT 0 0 1000 415) (select-rectangle img SUBTRACT 500 0 1000 1000) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (set-fgcolor hair) ;left Hair2 (if (eqv? val 2) (select-ellipse img REPLACE 370 300 700 450) (select-ellipse img ADD 370 300 700 450)) (select-ellipse img SUBTRACT 425 370 575 500) (select-rectangle img SUBTRACT 0 0 1000 410) (select-rectangle img SUBTRACT 650 0 1000 1000) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (set-fgcolor hair) ;BASE HAIR2 (select-ellipse img ADD 175 400 700 450) (select-ellipse img SUBTRACT 240 480 575 500) (select-rectangle img SUBTRACT 0 0 522 1000) (set-brush "Circle (05)") (set-fgcolor hair) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (set-fgcolor hair) ;right hair (if (eqv? val 1) (select-ellipse img ADD 65 350 700 450) (select-ellipse img REPLACE 65 350 700 450)) (select-ellipse img SUBTRACT 130 420 575 500) (select-rectangle img SUBTRACT 0 0 1000 420) (select-rectangle img SUBTRACT 0 0 500 1000) (set-brush "Circle (05)") (set-fgcolor hair) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (set-fgcolor hair) ;right hair2 (if (eqv? val 2) (select-ellipse img REPLACE -10 300 700 450) (select-ellipse img ADD -10 300 700 450)) (select-ellipse img SUBTRACT 55 370 575 500) (select-rectangle img SUBTRACT 0 0 1000 420) (select-rectangle img SUBTRACT 0 0 500 1000) (set-brush "Circle (05)") (set-fgcolor hair) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (set-fgcolor hair) (select-rectangle img REPLACE 440 408 150 71) (fill-fgcolor img) (select-rectangle img REPLACE 576 416 78 15) (fill-fgcolor img) (select-nothing img)))) (draw-fighter (lambda (val2) (draw-background (random 10)) (set-fgcolor (list 255 232 232)) (set-brush "Circle (05)") (select-ellipse img REPLACE 250 400 550 550) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (set-brush "Circle (03)") (line img 584 918 764 744) (line img 690 768 718 822) (select-nothing img) )) (draw-schoolgirl (lambda (val2) (draw-background (random 10)) (set-fgcolor (list 255 232 232)) (set-brush "Circle (05)") (select-ellipse img REPLACE 250 400 550 550) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 706 412 100 100) (set-fgcolor RED) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-ellipse img REPLACE 248 412 100 100) (set-fgcolor RED) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-nothing img) )) (draw-old-man (lambda (val2) (draw-background (random 10)) (set-fgcolor (list 255 232 232)) (set-brush "Circle (05)") (select-ellipse img REPLACE 250 400 550 550) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-nothing img) (line img 474 476 572 476) (line img 410 512 624 512) (set-fgcolor (list-ref hair-colors (modulo (random 10) 5))) (select-ellipse img REPLACE 480 880 100 120) (select-ellipse img SUBTRACT 250 380 550 550) (fill-fgcolor img) (set-fgcolor BLACK) (stroke img) (select-nothing img) )) ) (draw-background val3) (draw-face val1) (draw-eyes val3) (cond ((eqv? (modulo val1 5) 0) (draw-hair 0 val2)) ((eqv? (modulo val1 5) 4) (draw-hair 0 val2)) ((eqv? (modulo val1 5) 3) (draw-hair 1 val2)) ) (show-image img))))