Flipflaps - game based on pancake sorting

Assignment Help C/C++ Programming
Reference no: EM1392127

"FlipFlaps"

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 members' names. Feel free to add team members' pictures, animations, 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 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. 

5. Allow the player to select where to insert the spatula; 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.

Scoring: The instructors will provide a function named find_solution which calculates the minimum number of flips needed for a particular stack of pancakes. The score for one game is 100 minus 10 times the number of unnecessary flips more than the minimum, multiplied by the difficulty level.For example, if a particular stack of 6 pancakes could be flipped into order with 5 flips (according to the find_solution function), but the player takes 7 flips, then the score is [100 - 10 * (7 - 5)] * 6 = 480. The score for a game cannot go below zero, so in this case the game ends after 15 flips even if the pancakes are still not in order.

Display "Can be done in xx flips" (use the information from find_solution). Also display a running count of how many flips so far, and the player's score so far.

Timer to end the game when time is up. Allow 10 times the number of pancakes, e.g., 7 pancakes gives 70 seconds. Display a digital clock with the time remaining. Hint: Check the online FLTK documentation for Fl::add_timeout.

Animation, e.g., on the splash screen or to show the pancakes moving as they are being flipped over. Hint: Check the FLTK online documentation for "double-buffered window" to reduce flashing.

This is a team project, with approximately three students on a team. The instructor will assign the teams. (Note: If there are any problems with your team assignment, please talk to your TA promptly.) 

Divide up the code, with each student on a team of 3 doing two of the six items on page 1. If you have a team of 4, the fourth person must do one of the harder "Extra Items" on page 2 for the team to get a maximum grade of 100.

A team of 3 will receive 5 points extra credit for doing one "Extra Item" or 10 points for doing two. A team of 4 will receive 5 points extra credit for doing a second "Extra Item" or 10 points for doing all three "Extra Items."

You must use at least two C++11 features, such as auto and range-based for. You must write at least two classes of your own, with separate header and implementation files. Follow good style, and limit each function to no more than 24 lines (one terminal window). Each team member is expected to have a rough idea of how all the code works, and should be able to explain in detail how their own part of the code works.

Be creative in deciding how to meet these specifications in an attractive and user-friendly way, but get the basic functionality working before you try to make it too fancy, or you may run out of time!

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 (your team).

Your program should compile and runwithout change on the Visual C++ environment in the lab or linux2.cse.tamu.edu with X windows.

Your program must be submitted bothto CSNET and also on a CD formatted for Windows. The project report (described below) should be submitted on paper to your TA,along with your CD. You only need to submit one report and CD and CSNET file per team. Write a report according to the outline below. All team members will receive the same project grade, unless some team member does not do his/her part.

Download:- Pancake_Game.zip

Reference no: EM1392127

Questions Cloud

Operations planning is to specify the optimal combination : The main purpose of aggregate operations planning is to specify the optimal combination of which of the following?
Confidence internal for population : A random sample of 90 printers discovered that 25 of them were being used in small businesses. Find the 95% limit for the population proportion of printers that are used in small buisnesses.
Field be zero if one of the charges were negative : Where would the net electric field be zero if one of the charges were negative? Enter your answer as a distance from the charge initially equal 0.470
Symptoms of the original toxic compound : Practitioners of homeopathic medicine believe that toxic substances, appropriately diluted, can have healing effects, usually having the opposite effect of symptoms of the original toxic compound.
Flipflaps - game based on pancake sorting : 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.
Each sample consisting of individual items : If there are 120 total defects from 10 samples, each sample consisting of 10 individual items in a production process, which of the following is the fraction defective that can be used
Description of percentile of normal distribution : A vending machine dispenses coffee into a twelve ounce cup. The amount of coffee dispensed into the cup is normally distributed with a standard deviation of 0.08 ounce.
Compromise function to compute alpha and beta : Assume that the result is a sample size beyond what you can obtain. Use the compromise function to compute alpha and beta for a sample approximately half the size.
Describe the structure of viruses : Explain why are many hospitals in developed countries consume large amounts of cephalosporin antibiotics, particularly in surgical departments as the preferred choice for prophylaxis and Describe the structure of viruses.

Reviews

Write a Review

C/C++ Programming Questions & Answers

  Create program to input miles driven and gallons used

Create a program in C++ which will input miles driven and gallons used (both as integers) for each tankful. Program must compute and display the miles per gallon

  Basics of code development on linux and cryptography

Prepare a C program that gives simple mono-alphabetic substitution between plaintext, and Enhance your code to use "-e" to encrypt a string argument and "-d" to decrypt it using argv and argc

  Develop a basic temperature class

You have to develop a basic temperature class

  Use the top-down modular approach to design program

Use the top-down modular approach and pseudocode to design a suitable program to solve it. Where appropriate, use defensive programming techniques.

  Grocery store program

This program draws upon several concepts that were covered in CptS 121 and should serve as a good refresher for CptS 122. Our store, Cougar Mart, maintains its inventory in a text file. Not being very tech savvy, the owner of Cougar Mart needs you to..

  Create class integerset

Create class IntegerSet for which each object can hold integers in the range 0 through 100. Represent the set internally as a vector of bool values. Element a[i] is true if integer i is in the set. Element a[j] is false if integer j is not in the set..

  Write main function to compute stress-strain in steel rod

Write a main function and the following functions to compute the stress and strain in a steel rod of diameter D (inches) and length L (inches) subject to the compression loads.

  Program to print out invalid number to character

The integer must contain 3 distinct non-zero number, or the program will print out invalid number.it should print out invalid query.

  Change temperature fahrenheit to celsius and kelvin

Write a program in c++ that takes the temperature in Fahrenheit and convert it to Celsius And Kelvin:

  Code to implement a staque

Write a C++ code to implement a Staque. Since the data structure is all about inserting and deleting numbers, it would be a good option to use a linked list to implement Staque.

  Implement the tronomino tiling algorithm

Implement the tronomino tiling algorithm,  our program should take an arbitrary input positive integer  k  in the Linux command line and generate a 2 k  * 2 k  board.

  Create a base employee class

Create a base Employee class and a derived StudentEmployee class

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd