EECE 1080C: programming for ECE
Summer 2023
Laboratory P: Computer Project
Project is due on Sunday, 18 June 2023
Objective:
The goal of the project is to demonstrate mastery of C++ through the design and implementation of a multi-level interactive computer game.
Project Description:
For one or two players...
Players should navigate around a maze to complete an objective and advance through levels or maps of increasing difficulty
Players can work together to defeat obstacles (traps or npc), compete to find special items and powerups, or solve a puzzle
Players should use keyboard controls to navigate around the screen (WASD or keys are preferred, or provide clear instructions)
Groups:
Students may work in teams with two additional members (3 members per group).
Rubric (100 points):
The C++ source code should meet or exceed the following requirements
oDemonstrate Object-Oriented Programming for C++
Create meaningful variable and function names
Use arrays, repeating blocks, and decision blocks
Maximize the use of global functions, namespaces, and classes
oAvoid using techniques found on the internet or using chatgpt
These could be considered plagiarism and will affect your overall score.
If you find something you want use in your code, make sure you understand how to use it fully and send me an email for permission to use – you are required to put clear documentation about it in your code.
If these advanced implementations are difficult to use or generate a bug in your program. I and the teaching assistants will be unable to help with your project and you will get an incomplete.
Use good programming practice
General Tips:
Take time to discuss and outline the features that you want to build into the game – a flowchart and a list of features can help greatly when requesting help from Me or the teaching assistants
Decide who will design each object type, then bring them together in the main code
Compatibility:
The program should compile and run successfully on both Windows OS and Mac OS
Students should be mindful that the professor and teaching assistants may not have the same operating system.
Students should avoid using special features that they find on the internet. – if you don't how it works, don't use it – these special features are usually unique defined for one operating system or another. and will impact the overall score of your project.
Professor's Notes:
The outline on the next page can be used to begin each file in your project.
Multiple Object Header Files are advisable to make the project navigation better.
Object Header File
/***********************************************************\
Filename:
Project Name:
Developers:
About:
\***********************************************************/
#include //array utilities
#include //cctype tools
#include //mathematics library
#include //C-standard library
#include //cstring tools
#include //C time library
#include //IO manipulation library
#include //input/output library
#include //address utilities
#include //string class library
#include //vector class library
using namespace std;
#ifndef change_flag_name
#define change_flag_name
/* add object here */
#endif
Program Compiler File
/***********************************************************\
Filename:
Project Name:
Developers:
About:
\***********************************************************/
#include"Insert Header File Name";
int main() {
/* add code here */
return 0;
}
Sample Maze Layout
In the sample maze below, the hero (#) must sneak past the monster (M) and find its way from start (S) to end (E)
Enter Direction (use wasd, arrow keys, or 0 to exit):
You may design your maze as you like; make it fun and interesting.
Player can select from multiple characters, each having a different skill set
During gameplay
Player can select the maze to play (0 through 9)
Player starts on a square of the maze
Player should be able to press the standard buttons to interact with the maze
ow – to go up (up arrow)
oa – to go left (left arrow)
os – to go down (down arrow)
od – to go right (right arrow)
oq – to quit (esc key) (alternative: 0 or another key of your choice)
Limit the players ability to "walk" outside the maze boundary or pass through walls
The player’s goal is to get the character to the end space in the maze
Player might face bad guys and traps, or find hidden items as they wander through the maze
Concerning object types... you may need
A class to manage the attributes of each position on the maze – like traps, special items, and bad guys
An array of positions to represent the maze
A class to describe the general attributes of the hero
A derived class for each of the type of playable character
A class to describe special items
A class to describe npc (non-playable characters)