High-level Design

The particular details of our project are as follows. The program starts by displaying the Main Menu screen. It contains the title and three options which can be navigated via the controller. The three options are: One Player Game, Two Player Game, and Options.

Choosing Options will take the player to the Options Menu screen. This screen offers four options: Ball Speed (1 slowest, 10 fastest), Paddle Size (1 smallest, 5 biggest), Winning Score, and Reset Defaults. The Winning Score option sets the score which a player needs to reach to win. Reset Defaults sets the options to 4, 3, and 10 respectively. The game starts with these defaults set, so a player can start a game without going to the Options Menu first.

In the One Player Game, the player controls both paddles. His or her goal is to navigate the paddles to avoid losing the ball. Each time the ball hits a paddle, the player's score increases. When the score reaches the Winning Score or the player misses the ball, the game proceeds to the Game Over screen.

In the Two Player Game, each player controls his or her own paddle. Each time a player misses the ball, the opponent's score increases. When either player reaches the Winning Score, the game goes to the Game Over screen.

In either of these two games, a player can hit the start button on the controller to pause the game. The Pause screen offers two options: Resume and Exit. Resume continues the paused game. Exit causes the program to return to the Main Menu screen.

The Game Over screen can display one of several things. It displays whether a player won or lost in a One Player Game. In a Two Player Game, it displays which player won. The Game Over screen prompts a player to press a button, after which the program returns to the Main Menu screen.

The up and down buttons on the controller are used to move between options on the various menus and to move the paddles up and down. Left and right are used in the Options Menu to increase or decrease option values. The A button is used to select options in menus. The B button is used to return to the Main Menu from the Options Menu. The Start button is used to pause a game (and can also be used in place of the A button in some menus).

We attached a speaker as well. It beeps whenever the ball hits a paddle.

Refer to the Hardware section for more information about the peripheral devices: controller, LCD, speaker, and STK500 board. Refer to the Software section for more information about our program design, such as timing.