Reference no: EM1381042
The project is to design and write a C++11/FLTK game program with a graphical user interface. The game is based on "pancake sorting," which actually has some mathematical significance.
The heart of the game is a centered stack of pancakes, each one a different size. The goal is to get the stack into order (from smallest on top to largest on bottom) by flipping over the top partial stack of some number of pancakes. See the Wikipedia article for an example flipping the top three pancakes. Since we're flipping flapjacks, the game is named "FlipFlaps".
The program must:
1. Start with an attractive splash screen showing (at least) the name of the game ("FlipFlaps"), the team number, and the team member's names. Feel free to add team member's pictures, animations (see extra credit section below), etc.
2. Explain how to play the game.
3. Ask for the player's initials and display the top 5 scores read in from the disk (see item 6 below) followed by the player's initials. The top scores file starts out empty.
4. Ask for a difficulty level from 2 to 9; this is the number of pancakes. Each pancake is a different size. Display the pancakes in a centered stack in a random order. Hint: Look up "permutation" at cplusplus.
5. Allow the player to select where to insert the spatula(below some pancake); you may decide to have a button beside each possible spatula position, or choose some other way to indicate where to flip. When the player clicks the "Flip!" button, flip over the partial stack above the spatula and redraw the screen.
6. If the pancake stack is now in order, from smallest on top to largest on the bottom, calculate the player's score (see "Scoring" below) and display it next to the player's initials. Sort the list of 6 scores and write the top 5 out to disk with initials. Then the next time the game is played that file will be read in and displayed in step 3 above. Note: The game is also over if the player makes too many flips (see "Scoring" below). Ask the player if they want to play another game or quit.
All user input and output must be through the GUI, not the console window. However, you may use the console window for printing debugging messages for the developers .