Project 9.2 CatchIt
Your objective is to create a game to illustrate the equation
of motion (X = Xo + Vot+ 0.5at2). In the
game, an object (such as a ball) will fall from the sky vertically according
to Y = Yo + Vot+ 0.5at2. Another
object (such as a cart) will move horizontally along the bottom of the screen
according to X = Xo + Vot+ 0.5at2.
The program will randomly determine some (not all) of the
parameters that control whether or not the objects will collide: Yo of
ball, acceleration of ball, Xo of box, Vo of the box.
The program should NOT determine one of the parameters such as Vo of
the box because the user will need to determine the appropriate value of this parameter
so that the objects collide. After the program displays the values of
the parameters, the user will enter the value for one parameter such as Vo and
start the animation. When the user starts the animation, the ball and box will
move according to the equations provided. If the ball hits the box,
then the user wins. If the ball misses the box then the user loses. Your
grade will be based on the following:
For discussion purposes we use "ball" and "box". You
may choose your objects to create your own theme for the game.
___ / 10: Should open in a new window that is pre-sized.
(Use window.open(...))
___ / 10: Displays a "ball" and a "box".
___ / 10: Randomly sets at least 2 parameters. The
remaining parameters may be hard-coded. The objects should be positioned according
to the parameters.
___ / 10: Displays all parameters to user except one.
The user will need to enter one parameter.
___ / 10: Objects move according to provided equations.
___ / 10: If the objects collide, the program should indicate
that the user has won; else the program should indicate that the user has lost.
___ / 10: If the object misses, the program should display
the correct answer.
___ / 10: The timer should be stopped before the objects move
off the screen.
___ / 15: The program (1) is visually appealing,
(2) contains controls to make it easy to play (and replay), and (3) does not have
any errors.