Ask C/C++ Expert


Home >> C/C++

"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

C/C++, Programming

  • Category:- C/C++
  • Reference No.:- M9357376

Have any Question?


Related Questions in C/C++

Question 1find the minimum and maximum of a list of numbers

Question: 1. Find the Minimum and Maximum of a List of Numbers: 10 points File: find_min_max.cpp Write a program that reads some number of integers from the user and finds the minimum and maximum numbers in this list. Th ...

Software development fundamentals assignment 1 -details amp

Software Development Fundamentals Assignment 1 - Details & Problems - In this assignment, you are required to answer the short questions, identify error in the code, give output of the code and develop three C# Console P ...

What are the legal requirements with which websites must

What are the legal requirements with which websites must comply in order to meet the needs of persons with disabilities? Why is maximizing accessibility important to everyone?

There are several ways to calculate the pulse width of a

There are several ways to calculate the pulse width of a digital input signal. One method is to directly read the input pin and another method (more efficient) is to use a timer and pin change interrupt. Function startTi ...

Assignment word matchingwhats a six-letter word that has an

Assignment: Word Matching What's a six-letter word that has an e as its first, third, and fifth letter? Can you find an anagram of pine grave. Or how about a word that starts and ends with ant (other than ant itself, of ...

1 implement the binary search tree bst in c using the node

1. Implement the Binary Search Tree (BST) in C++, using the Node class template provided below. Please read the provided helper methods in class BST, especially for deleteValue(), make sure you get a fully understanding ...

Assign ment - genetic algorithmin this assignment you will

ASSIGN MENT - GENETIC ALGORITHM In this assignment, you will use your C programming skills to build a simple Genetic Algorithm. DESCRIPTION OF THE PROGRAM - CORE REQUIREMENTS - REQ1: Command-line arguments The user of yo ...

Project - space race part a console Project - Space Race Part A: Console Implementation

Project - Space Race Part A: Console Implementation INTRODUCTION This assignment aims to give you a real problem-solving experience, similar to what you might encounter in the workplace. You have been hired to complete a ...

Why do researcher drop the ewaste and where does it end

Why do researcher drop the ewaste and where does it end up?

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As