The goal of this project is to demonstrate basic mastery of the design, creation, and implementation of a moderately sized C++ project. You will have your choice of two projects.
Use meaningful variable and function names.
Maximize the use of functions.
No global variables (except constants).
No magic number s.
main() should be the bare minimal necessary to accomplish the project. Most logic and work should be completed in functions.
- The program should be properly divided into functions.
- The program should use at least two preferably three or more classes.
- All program logic needs to be encapsulated within the object. main() should only instantiate the object and start the game.
- It should follow all coding style and comment guidelines.
- It should maximize code reusability (avoid cut-paste-modify but instead make code reusable if possible)
- Program compiles cleanly without warnings
- Program executes properly without crashing Program solves the problem as outlined.
- The program should have a help option
Project Selection
The team should pick from one of the following three projects:
- Conways Game of Life (1-2 Group Members)
- Solitaire (1-2 Group Members)
- Chess (2-3 Group Members)
You are not expected to make a clone of these games. Use them instead for inspiration. Show your creativity.
Project Requirements
No matter the project you choose, all projects have a single base requirement. Each project must utilize the concept of structures/classes and object-oriented programming in some manner. The specific requirements for each project are as follows:
Game of Life:
- The game must be able to import a set of initial settings from a text file to seed the game.
- The user should be able to modify the rules to the game in some manner, even if its minor.
- The game must be continuously displayed to the user as the cells in the grid turn on/off.
Solitaire:
- The user should be able to restart the game at any point once its started.
- The user should always be able to see the entire status of the game at all times, including how many cards are face down in each pile and how close they are to winning.
- If the user gets into a situation where it is impossible to win, the game should notify them that theyve lost.
Chess:
- Once the game starts, the board should always be displayed to the user(s).
- The game should be played by two players. AI can be used for the second player, but is not necessary.
- The game must notify the user(s) when his/her king has been put in check, and prevent any possible moves that would keep his/her king in check. If there are no available moves to the player to prevent the king from being in check, the other player wins.
Project Milestones
- Show the full conceptual layout of your game to a TA or instructor.
For the Game of Life, the conceptual layout includes how you plan to incorporate object-oriented programming into the project, how you plan to format your initial parameters, how the user is able to manipulate the rules of the game, and how you plan on displaying the grid to the user.
For Solitaire, the conceptual layout includes how you plan to gui incorporate object-oriented programming into the project, how you plan on displaying the game status to the user, how you plan on allowing the user to interact with the game, and how you plan on tracking if the user has won/lost.
For Chess, the conceptual layout includes how you plan to incorporate object-oriented programming into the project, how you plan on allowing the user(s) to interact with the game, how you plan on tracking the check status of each players king piece, and if you plan on using AI, how you plan to implement it.
- Milestone #2 (Due by the end of lab on Monday, August 5th): Show that 2 of the 4 requirements for your selected game have been implemented to a
Reviews
There are no reviews yet.