Create design.txt

User Interface: The pygame windowSurface. It was the generic rectangular game screen that is called up when the pygame module is run. Given that it's a 2d platform game, just having a typical rectangular game screen = the way to go, with key controls cycling between different screens.

Code and Functions/How They Made the Program Work: Used Pygame. First, everything from pygame and common Python modules were imported. Though I didn't necessarily have to use all of them, I just imported them anyway at the start just in case if I ever end up using them. I broke up my code into multiple functions based on the screens that are loaded. So there was one function written for each screen: start, instructions, game over, congratulations, and each of the 3 levels. Embedded in each function, I included all the necessary components like initialized local variables, key press controls, and functions needed to draw certain components of the game screens like the colored background, text, character, platforms, enemies, and bullets. The platforms, enemies, and bullets were stored in lists containing tuples (except for the enemies list, which I made into a 2d list, with each row of the 2d list representing the information for 1 enemy). These lists helped me to easily track each element of the game and its current interactions with everything else (including things like position, direction, speed, health, movement boundary, etc).

Inspiration/Similar Programs: Super Mario. It was a platformer game, and I thought that writing code for a 2D platform game wouldn't be too bad for me. Also, Super Mario is one of my favorite platform classics.