In this third part, we have the following objectives:
- Clean up the classes
- Multiple planes
- Multiple shots.
- Generalize the game objects into a superclass
- Display a score
- Assign keys to shoot and play again or exit
In the version of Part II, the classes have a lot of repeated code. By analyzing each of them, we can reach a conclusion about a common behavior regarding how to draw and update the objects. A method to remove the object from the game is also used.