;; The first three lines of this file were inserted by DrRacket. They record metadata ;; about the language level of this file in a form that our tools can easily process. #reader(lib "htdp-beginner-reader.ss" "lang")((modname entry13) (read-case-sensitive #t) (teachpacks ((lib "draw.ss" "teachpack" "htdp"))) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ((lib "draw.ss" "teachpack" "htdp"))))) ; ;;Lab 3 ;Purpose: to simplify positions for later picture (define pixel-10-100 (make-posn 10 100)) ;backboard (define pixel-400-400 (make-posn 400 400)) (define pixel-350-350 (make-posn 350 350)) (define pixel-300-300 (make-posn 300 300)) (define pixel-500-500 (make-posn 500 500)) ;start ball, end arms (define pixel-450-450 (make-posn 450 450)) (define pixel-600-575 (make-posn 600 575)) ;neck (define pixel-600-530 (make-posn 600 530));head (define pixel-605-486 (make-posn 605 486));hair (define pixel-580-480 (make-posn 580 480)) ;bangs (define pixel-600-600 (make-posn 600 600)) ;left armpit (define pixel-600-700 (make-posn 600 700)) ;torso (define pixel-650-800 (make-posn 650 800)) ; leg 1 (define pixel-550-800 (make-posn 550 800)) ; leg 2 (define pixel-576-520 (make-posn 576 520)) ;eye (define pixel-500-600 (make-posn 500 600)) ;right arm (define pixel-570-550 (make-posn 570 550)) ;mouth (define pixel-75-250 (make-posn 75 250)) ;start hoop ;;ball falling (define pixel-75-350 (make-posn 75 350)) (define pixel-75-450 (make-posn 75 450)) (define pixel-75-600 (make-posn 75 600)) (define pixel-75-750 (make-posn 75 750)) (start 800 800) ;Contract: shape -> boolean ;Purpose: to create the non-moveable shapes in our cartoon, meaning the backboard and basketball hoop and the stick woman (draw-solid-string (make-posn 500 250) "SHE SHOOTS...") (define-struct face (eye mouth)) (make-face (draw-solid-disk pixel-576-520 4 'blue) (draw-solid-disk pixel-570-550 8 'black)) (face-eye (make-face (draw-solid-disk pixel-576-520 4 'blue) (draw-solid-disk pixel-570-550 8 'black))) (define ourface (make-face (draw-solid-disk pixel-576-520 4 'blue) (draw-solid-disk pixel-570-550 8 'black))) (face-eye ourface) (draw-circle pixel-600-530 45 'brown) ;head (draw-circle pixel-75-250 50 'red) ;hoop (draw-solid-rect pixel-10-100 15 150 'black);backboard (draw-solid-line pixel-600-600 pixel-500-500 'black);left arm (draw-solid-line pixel-600-700 pixel-600-575 'black) ;torso (draw-solid-line pixel-500-600 pixel-600-600 'black) ;right arm (draw-solid-line pixel-600-700 pixel-650-800 'black) ;leg 1 (draw-solid-line pixel-600-700 pixel-550-800 'black) ;leg 2 (draw-solid-disk pixel-576-520 4 'blue) ;eye (draw-solid-disk pixel-570-550 8 'black) ;mouth (draw-solid-rect pixel-605-486 45 105 'brown) ;hair (draw-solid-rect pixel-580-480 40 20 'brown) ;bangs ;Contract: shape -> boolean ;Purpose: this draws the ball going to the hoop, through the hoop, and falling to the ground ;;We tried many different ways to shorten the steps for this next part such as a draw-and-clear function, but ran out of time- this is one way we tried ;(define orig-solid-disk-x 500) ;(define orig-solid-disk-y 500) ;(define (curr-solid-disk a)(make-posn (- orig-solid-disk-x 50) (- orig-solid-disk-y 50))) ;(define (new-solid-disk x y) (make-posn (- (curr-solid-disk 1) 50) (- (curr-solid-disk 1) 50))) ;(new-solid-disk (- (curr-solid-disk 2) 50) (- (curr-solid-disk 2) 50)) (draw-solid-disk (make-posn 500 500) 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-500-500 50 'orange) (draw-solid-disk (make-posn 500 500) 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-500-500 50 'orange) (draw-solid-disk pixel-450-450 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-450-450 50 'orange) (draw-solid-disk pixel-400-400 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-400-400 50 'orange) (draw-solid-disk pixel-350-350 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-350-350 50 'orange) (draw-solid-disk pixel-300-300 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-300-300 50 'orange) (draw-solid-disk pixel-75-250 50 'orange) (sleep-for-a-while 1) ;when the ball is in the hoop (clear-solid-disk pixel-75-250 50 'orange) (draw-circle pixel-75-250 50 'red) (draw-solid-disk pixel-75-350 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-75-350 50 'orange) (draw-solid-disk pixel-75-450 50 'orange) (sleep-for-a-while 1) (clear-solid-disk pixel-75-450 50 'orange) (draw-solid-disk pixel-75-600 50 'orange) (draw-solid-string (make-posn 500 300) "SHE SCORES!!!!!!!!!") ;score! (sleep-for-a-while 1) (clear-solid-disk pixel-75-600 50 'orange) (draw-solid-disk pixel-75-750 50 'orange)