The Catapult Assignment

This is out of 30 points. The max including extra credit is 35 points. I do not expect every student to get every point listed below.
Your task is to make a program that has If you have no fire button, the game works like this:
The power and angel start at some default value.  The screen shows where the cannonball hits with those values.  As the user presses on the up/down angel or the more/less power button, the cannonball moves to a new place.  If the cannonball ever hits the target, you win.
If there is a fire button, the game works like this:
The power and angel start at some default value.    As the user presses on the up/down angel or the more/less power button, the display of these numbers changes.  When the fire button is pressed, the cannonball appears in flight.  If the cannonball ever hits the target, you win.
I will provide you with a cannonball class and a button class.

The points table
 
Points Task
3 Has at least one working button
3 Has more than one working button
3 Uses a class beyond the button class, the trebuchet class and the main class
3 Does something with the keyboard.
3 Displays values for angle and power
3 Those values change when the button or keyboard is pressed
3 Shows where the cannonball lands
3 Has an explosion or a message when the target is hit
24 Subtotal of all above.
2 Has a "fire" button
2 Insults the user at random times in a random way (three insult minimum)
1 The target wanders randomly.
1 It takes multiple hits to kill the target.
2 You can hit some part of the background (or any non-primary-target)
2 A bird or cloud moves or soemthing moves.
1 Keeps a count of shots taken
3 There are two players who shoot at each other.
2 Has a cheat button (sets the cannon to winning values)
1 Has a move button (the target moves when you press this)
-3 Each day after Wed Apr 20th.