$30
For the Final Project, you will implement a turn-based, text (adventure) game in C++, or another similar interactive concept. The minimum requirements for the project can be found below. From known games, suggested examples include Where in the World is Carmen Sandiego?, Final Fantasy, and MUD. Of course, you are encouraged to come up with a novel and unique idea in order to distinguish your project from the others.
Requirements
The only (minimum) requirement for this final project is that you include the following programming features in a C++ program:
Implementation requirements:
● 3 user-defined classes (one class can be a driver class)
● 4+ data members in two of the classes
● 6+ if-else statements
● 4+ loops (while loops, for loops, do-while, in total)
● 2+ nested loops
● File IO (both reading from a file and writing to a file)
Project feature requirements:
● The project must have interactive components (ask the player for inputs, create menus for choices, and so on). It’s a game!
● Game stats should be displayed at each turn. It’s more exciting and meaningful! Also, these stats help debug the code.
● Your project must include:
○ At least 5 menu options (other than Quit/Exist)
○ At least two of these options must have a second layer of menu options
○ At least 2 menu options(primary or secondary layer of the menu) should include a random component, at least one each from the following:
■ The value of the variable is selected at random from a certain range of values (i.e. select a value at random between 1 and 6)
■ A probability value determines one of the outcomes (i.e. there is a 60% change a certain event will occur)
/*
1. Compare adjacent elements. If the first is greater than the second, swap them.
2. Do this for each pair of adjacent elements, starting with the first two and ending with the last two. At this point the last element should be the greatest.
3. Repeat the steps for all elements except the last one.
4. Repeat again from the beginning for one less element each time, until there are no more pairs to compare.
*/ int bubble_sort(int arr[], int size)
{ int swaps = 5; return swaps; // function returns expected type (int)
}
Write a 1-2 page report containing the following reflection questions:
1. How did you prepare for the project?
2. How did you develop our code skeleton? In what way(s) did you use your code skeleton?
3. Reflect on how you could have done better or how you could have completed the project faster or more efficiently?
4. In addition, write a paragraph answering the following question, in the context of the Project in CSCI 1300:
Did you have any false starts, or begin down a path only to have to turn back when figuring out the strategy/algorithm for your Final Project program? Describe in detail what happened, for example, what specific decision led you to the false starts, or, if not, why do you think your work had progressed so smoothly. In either case, give a specific example.
The report should be a 1-inch margin, single space, 12pt font size, times new roman. Submit a report as PDF to Moodle.
Extra Credit
Option): Implement a sorting algorithm. Write your implementation of sorting algorithm
--- do not use a Library function or any outside resources) and apply it to a task in your program
Option2: Present your project in a video. Make a 5 minute (+ or - 1 min) video explaining:
● The project idea
● Implementation ana approach
● A demonstration of the working project
Project 3 total: 100 points
Note: if your code does not compile, you cannot score above 40 points for the project.