;; DO NOT PUT ANYTHING PERSONALLY IDENTIFYING BEYOND YOUR CWL IN THIS
FILE.
;; YOUR CWLs WILL BE SUFFICIENT TO IDENTIFY YOU.
(require 2htdp/universe)
(require 2htdp/image)
(require spd/tags)
(@assignment psets/pset-04);Do not edit or remove this tag
( @problem 1)
(@htdw ListOfBall)
;; Constants:
(define WIDTH 605)
(define HEIGHT 535)
(define BALL-RADIUS 10)
( define TOP (+ 0 BALL-RADIUS));these constants define the "inner box"
(define BOT (- HEIGHT 1 BALL-RADIUS));that constrain the center of the ball
(define LEF (+ 0 BALL-RADIUS));
(define RIG (- WIDTH 1 BALL-RADIUS));
(define BALL (circle BALL-RADIUS "solid" "white"))
(define MTS (rectangle WIDTH HEIGHT "solid" "green"))
;;
======================================================================
=====
;;
======================================================================
=====
;; Data definitions:
( @htdd Ball)
(define-struct ball (x y dx dy))
;; Ball is (make-ball Number Number Number Number)
;; interp. (make-ball x y dx dy) is ball
;; - position x, y in screen coordinates
;; - velocity dx, dy in pixels/tick
;; CONSTRAINT: x is in [LEF, RIG]; y is in [TOP, BOT]
(define B1 (make-ball (/ WIDTH 2) (/ HEIGHT 2) 4 -3))
(@dd-template-rules compound)
(define (fn-for-ball b)
, (... (ball-x b)
(ball-y b)
(ball-dx b)
(ball-dy b)))
( @htdd ListOfBall)
;; ListOfBall is one of:
;; - empty
;; - (cons Ball ListOfBall)
;; interp. a list of balls
(define LOB1 empty)
(define LOB2 (cons B1 empty))
(@dd-template-rules one-of
atomic-distinct
compound
ref
self-ref)
(define (fn-for-lob lob)
(cond [(empty? lob) (...)]
[else
(... (fn-for-ball (first lob))
(fn-for-lob (rest lob)))]))
;;
======================================================================
=====
;;
======================================================================
=====
;; Functions:
( @htdf main)
(@signature ListOfBall -> ListOfBall)
;; start the game, call with (main LOB1)
;; no tests for main functions
(@template-origin htdw-main)
(define (main lob)
(big-bang lob
(to-draw render-balls) ;ListOfBall -> Image
(on-tick next-balls) ;ListOfBall -> ListOfBall
(on-key handle-key) ;ListOfBall KeyEvent -> ListOfBall
(on-mouse handle-mouse))) ;ListOfBall MouseEvent Integer Integer
FILE.
;; YOUR CWLs WILL BE SUFFICIENT TO IDENTIFY YOU.
(require 2htdp/universe)
(require 2htdp/image)
(require spd/tags)
(@assignment psets/pset-04);Do not edit or remove this tag
( @problem 1)
(@htdw ListOfBall)
;; Constants:
(define WIDTH 605)
(define HEIGHT 535)
(define BALL-RADIUS 10)
( define TOP (+ 0 BALL-RADIUS));these constants define the "inner box"
(define BOT (- HEIGHT 1 BALL-RADIUS));that constrain the center of the ball
(define LEF (+ 0 BALL-RADIUS));
(define RIG (- WIDTH 1 BALL-RADIUS));
(define BALL (circle BALL-RADIUS "solid" "white"))
(define MTS (rectangle WIDTH HEIGHT "solid" "green"))
;;
======================================================================
=====
;;
======================================================================
=====
;; Data definitions:
( @htdd Ball)
(define-struct ball (x y dx dy))
;; Ball is (make-ball Number Number Number Number)
;; interp. (make-ball x y dx dy) is ball
;; - position x, y in screen coordinates
;; - velocity dx, dy in pixels/tick
;; CONSTRAINT: x is in [LEF, RIG]; y is in [TOP, BOT]
(define B1 (make-ball (/ WIDTH 2) (/ HEIGHT 2) 4 -3))
(@dd-template-rules compound)
(define (fn-for-ball b)
, (... (ball-x b)
(ball-y b)
(ball-dx b)
(ball-dy b)))
( @htdd ListOfBall)
;; ListOfBall is one of:
;; - empty
;; - (cons Ball ListOfBall)
;; interp. a list of balls
(define LOB1 empty)
(define LOB2 (cons B1 empty))
(@dd-template-rules one-of
atomic-distinct
compound
ref
self-ref)
(define (fn-for-lob lob)
(cond [(empty? lob) (...)]
[else
(... (fn-for-ball (first lob))
(fn-for-lob (rest lob)))]))
;;
======================================================================
=====
;;
======================================================================
=====
;; Functions:
( @htdf main)
(@signature ListOfBall -> ListOfBall)
;; start the game, call with (main LOB1)
;; no tests for main functions
(@template-origin htdw-main)
(define (main lob)
(big-bang lob
(to-draw render-balls) ;ListOfBall -> Image
(on-tick next-balls) ;ListOfBall -> ListOfBall
(on-key handle-key) ;ListOfBall KeyEvent -> ListOfBall
(on-mouse handle-mouse))) ;ListOfBall MouseEvent Integer Integer