;; DO NOT PUT ANYTHING PERSONALLY IDENTIFYING BEYOND YOUR
CWL IN THIS FILE.
;; YOUR CWLs WILL BE SUFFICIENT TO IDENTIFY YOU AND, IF YOU HAVE
ONE, YOUR
;; PARTNER.
(require 2htdp/universe)
(require 2htdp/image)
(require spd/tags)
(@assignment psets/pset-04);Do not edit or remove this tag
;; If you are:
;; - A 110 or 107 student replace the first set of '???'s with your cwl.
;; For problem sets, If you have a partner, please replace the second
;; set of '???'s with their cwl. Remember this, it is what you will
;; do with these @cwl annotations for the whole course.
;; - A UBC Extended Learning student, replace the first set of ??? with
;; your email address as confirmed in the email you received from
;; extended learning. The handin password is also in that email.
;; Remember this, it is what you will do with these @cwl annotations
;; for the whole course.
;;
(@cwl ??? ???)
;; Below is our solution to Problem Set 3.
;; For problem set 4 you must improve this program in important ways. Be sure
;; not to change the program's behaviour in any other ways than we are asking.
;; Making extra improvements could cause you problems with the autograder.
;;
;; Modify the program so that instead of there being a single ball there
;; can be any number of balls. The mouse button should add a new ball.
;; Pressing space should clear all the balls.
;;
;; Again your change should be systematic and complete. All relevant
;; design elements and tags must be updated. You must name the new
;; world state type ListOfBall.
;;
;; NOTE, if you work systematically, starting from the HtDW recipe, you
;; will decide that you need a new ListOfBall type; but that the Ball
;; type does not change. Therefore you should NOT change your next-ball
, ;; function. Your render-ball function will also be useful when you
;; work on your place-ball function, although render-ball will have to
;; change some.
;;
(@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 constrains 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
(define B1 (make-ball (/ WIDTH 2) (/ HEIGHT 2) 4 -3))
CWL IN THIS FILE.
;; YOUR CWLs WILL BE SUFFICIENT TO IDENTIFY YOU AND, IF YOU HAVE
ONE, YOUR
;; PARTNER.
(require 2htdp/universe)
(require 2htdp/image)
(require spd/tags)
(@assignment psets/pset-04);Do not edit or remove this tag
;; If you are:
;; - A 110 or 107 student replace the first set of '???'s with your cwl.
;; For problem sets, If you have a partner, please replace the second
;; set of '???'s with their cwl. Remember this, it is what you will
;; do with these @cwl annotations for the whole course.
;; - A UBC Extended Learning student, replace the first set of ??? with
;; your email address as confirmed in the email you received from
;; extended learning. The handin password is also in that email.
;; Remember this, it is what you will do with these @cwl annotations
;; for the whole course.
;;
(@cwl ??? ???)
;; Below is our solution to Problem Set 3.
;; For problem set 4 you must improve this program in important ways. Be sure
;; not to change the program's behaviour in any other ways than we are asking.
;; Making extra improvements could cause you problems with the autograder.
;;
;; Modify the program so that instead of there being a single ball there
;; can be any number of balls. The mouse button should add a new ball.
;; Pressing space should clear all the balls.
;;
;; Again your change should be systematic and complete. All relevant
;; design elements and tags must be updated. You must name the new
;; world state type ListOfBall.
;;
;; NOTE, if you work systematically, starting from the HtDW recipe, you
;; will decide that you need a new ListOfBall type; but that the Ball
;; type does not change. Therefore you should NOT change your next-ball
, ;; function. Your render-ball function will also be useful when you
;; work on your place-ball function, although render-ball will have to
;; change some.
;;
(@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 constrains 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
(define B1 (make-ball (/ WIDTH 2) (/ HEIGHT 2) 4 -3))