[SOLVED] EECE1080/CS1 Final Project

24.99 $

Category:

Description

5/5 - (1 vote)

 Project Specification:

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.

Collaboration:

You are expected to work with one partner on this project. You should consider using the pair programming approach to creating this project. ​ You​ can help each other learn by reviewing assignment materials, describing to each other how you are approaching the problem, and helping each other with syntax errors. Please document any help you receive from tutors, teaching assistants, and instructors.

Your solution is expected to be unique and of your own creation.

Having someone else code for you, sharing code with other students, or copy-pasting code from the internet or previous terms , is cheating. A helper should “teach you to fish, not feed you the fish”.  Assignments prepare you for exams so be smart.

 Project Checklist:

  • Choose a partner. Each partner is expected to work on the project equally.
  • Choose one of three projects or get approval from your instructor for your own project.
  • Get help when necessary during your assigned laboratory session.
  • The project C++ source code should meet or exceed the following requirements:
  • Use of C++ best practices when possible.

○ 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:

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:

  1. The game must be able to import a set of initial settings from a text file to seed the game.
  2. The user should be able to modify the rules to the game in some manner, even if it’s minor.
  3. The game must be continuously displayed to the user as the cells in the grid turn on/off.

Solitaire:

  1. The user should be able to restart the game at any point once it’s started.
  2. 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.
  3. If the user gets into a situation where it is impossible to win, the game should notify them that they’ve lost.

Chess:

  1. Once the game starts, the board should always be displayed to the user(s).
  2. The game should be played by two players. AI can be used for the second player, but is not necessary.
  3. 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

TA in the lab.

Sample Source:

/*

  • Project Title:
  • – The Gizmo Gadget
  • Description: (should be a few sentences)
  • This program does…….

*

*

  • Help Received:
  • – TA Name one
  • – Instructor
  • – Student X

*

  • Special Instructions: // optional
  • – How to compile
  • – How to run it

*

  • Developer comments: // Not optional
  • Developer 1:
  • Please describe what tasks you performed and what your learned from your experience
  • Developer 2:
  • Please describe what tasks you performed and what your learned from your experience */

#include <iostream> using namespace std;

/* Function Name: funone  *

  • Function Description:
  • This function solves….

*

  • Parameters:
  • The x parameter is the amount of fun to have
  • The y parameter is the amount of fun that happened

*

  • return value:
  • Indicates how much fun this assignment was

*/ int funone(int x, int y) {

}  int main() {       cout << funeone(7,8) << endl;  return 0;

}