联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2022-05-27 12:28

EECE 1080C: programming for ECE

Summer 2022


Laboratory P: Computer Project


Project is due on Wednesday, 15 June 2022


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

Players should use keyboard controls to navigate around the maze toward a finishing spot (WASD or  keys are preferred, or provide clear instructions)


Groups:

Students may work in teams with 2-3 members.

If students would like to organize a larger team (maximum of 5 members), they should contact Me by email outlining the project goals and responsibility for each member. A larger team should mean a more complex programming project, so that each member has equal contribution to its success.


Rubric (100 points):

See separate paper: EECE1080_Project_Solution for a description of grading criteria

The C++ source code should meet or exceed the following requirements

oUse the full range of C++ tools that have been discussed in this course

Create meaningful variable and function names

Use arrays, repeating blocks, and decision blocks

Maximize the use of global functions, namespaces, and object types

Use modular programming techniques

oOther C++ tools will be discuss each week, that provide options for enhancing the interactive experience

oAvoid using implementation found on the internet

These could be considered plagiarism and will affect you overall score.

If you do 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 – mainly I like to learn cool ways of doing things, and am interested in what you find

If these advanced implementations are difficult to use or generate a bug in your program. I and the teaching assistances will be unable to help with your project.

Use good programming practice


General Tips:

Take time to discuss and outline the features that you want to build into the game – a flowchart or 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.

If you use a modular approach, a object prototype header (hpp) and object definition compiler (cpp), upload an instruction file for compiling

Multiple Object Header Files are advisable to make the project navigation better.




Object Header File

/***********************************************************\

 Filename:       <insert Name>

 Project Name:   <insert Name>

 Developers:     <insert Name> <insert CQU#>

                 <insert Name> <insert CQU#>

                 <insert Name> <insert CQU#>

 About:          <insert Header Description>

\***********************************************************/

#include <algorithm> //array utilities

#include <cctype>    //cctype tools

#include <cmath>     //mathematics library

#include <cstdlib>   //C-standard library

#include <cstring>   //cstring tools

#include <ctime>     //C time library

#include <iomanip>   //IO manipulation library

#include <iostream>  //input/output library

#include <iterator>  //address utilities

#include <string>    //string class library

#include <vector>    //vector class library

using namespace std;


#ifndef change_flag_name

#define change_flag_name


/* add object here */


#endif


Program Compiler File

/***********************************************************\

 Filename:       <insert Name>

 Project Name:   <insert Name>

 Developers:     <insert Name> <insert CQU#>

                 <insert Name> <insert CQU#>

                 <insert Name> <insert CQU#>

 About:          <insert Header Description>

\***********************************************************/


#include"Insert Header File Name";


int main() {

   

   /* add code here */

   

   return 0;

}


Execution File (.ps1, for modular programs only)

c++ -o output.exe mainProgramFile.cpp classOne.cpp


./output.exe


where

output.exe – name of output execution file

mainProgramFile.cpp – name of the file that contains int main

classOne.cpp – name of first object definition compiler file

more cpp files can be added to the list as needed



Sample Maze Layout


In the sample maze below, the hero (#) must sneak past the monster (M) and find its way from start (S) to a 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 should 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)


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp