CptS 122 Data Structures
c++ | project | data structure | assignment代写 | oop – 这道题目是利用c++进行的编程代写任务, 包括了c++/数据结构等方面, 通过数据结构基本数据结构进行游戏设计，这个项目是assignment代写的代写题目
Programming assignment 6: Implement Yu Gi Oh! Card
Assigned: Saturday, October 26, 2019 Due: Friday, November 8, 2019 by midnight
I. Learner Objectives:
At the conclusion of this programming assignment, participants should be able to:
- Design, implement and test classes in C++
- Apply class templates in C++
- Declare and define constructors
- Declare and define destructors
- Compare and contrast public and private access specifiers in C++
- Describe what is an attribute or data member of a class
- Describe what is a method of a class
- Apply and implement overloaded functions
- Distinguish between pass-by- value and pass-by- reference
- Discuss classes versus objects
- Implement container classes
- Implement a queue class
- Implement a stack class
- Utilize an array to manage data
- Read and write files in C++
Before starting this programming assignment, participants should be able to:
- Analyze a basic set of requirements for a problem
- Compose basic c++ language programs
- Create basic test cases for a program
- Apply arrays, strings, and pointers
III. Overview & Requirements:
Yu-Gi-Oh! is a trading card game where the Objective is to defeat your opponent by reducing their Life Points to zero.
Understanding the Cards:
Monster cards are summoned to attack your opponents Life Points and defend your own. They are usually orange (effect) or yellow (normal) in color, but there are many other colors as well. Monsters have levels, ranging from 1-12, which are indicated by the stars along the top, and a symbol in the top right corner indicating Attribute. The Attack and Defense stats are listed as ATK and DEF along the bottom.
What you will implement:
Monster Cards: ( Node Struct )
a. Name b. Attack Points # of points to take from life points c. Defense Points # of points to keep subsequent attack d. Type monster type gives extra points to the ATK or DEF points
- Each player can start out with a set of cards ( the deck ): a. Player adds card individually b. Player gets a set of predefined cards
- Players can go into battle a. Player starts out with 8000 life points b. Each Player chooses 5 cards from the deck i. Player can only choose from the top of the deck c. Coin Toss to see who goes first player 1 or player 2 d. Each player will place one card of their choosing in defense mode
e. Each player will place one card of their choosing in attack mode f. Each player will choose which card is ACTIVE i. If one player chooses attack and the other chooses defense
- New Life points = Life points – (ATK DEF) ii. If both players choose defense
- Cards get discarded iii. If both players choose attack
- One with greater ATK wins round g. After the first round i. 5 cards should be in the players hand at all times ii. two more cards can be placed in attack and defense mode iii. Cards must be activated in queue mode
- Battle ends when a player has no more Life Points
- Players can trade cards: Cards can be added and deleted from any players deck.
Example of output:
Choose an option from the following:
- Create Player
- Add Cards to Specific Player
- Trade Cards with Other Player
- Battle Other Player
Player 1 chooses Cyber Dragon in ATK mode
Player 2 chooses Dark Magician in DEF mode
Player 2 losses 0 life points
Player 1: 8000 LP
Player 2: 8000 LP
Round 2: ....
- Note: Options 1 and 2 in the menu need to be run (so that there are two players with a deck of cards) before trading or battling commence.
- You will have two classes: Stack class and Queue class.
- The main.cpp will implement the menu above.
IV. Grading Guideline:
This assignment is worth 100 points. Your assignment will be evaluated based on a successful compilation and adherence to the program requirements. We will grade according to the following criteria:
- Menu 10 points
- Coding functionality (organization of code) 5 points
- Gaming aspect 7 0 points o Adding cards to a deck 10 points o Adding to the hand 10 points o Adding to defense queue 10 points o Adding to attack queue 10 points o Life Points Calculation 10 points o Winner Decision 20 points
- Trading Cards Portion 1 0 points
- Quit Game 5 points
Extra Credit: implementation of the stack and queue class using a template (10 points)
V. Submitting Assignments:
- Must submit your assignment in a zip file through blackboard.
- Your project must contain at least two header files (.h files) and three C++ source files (which must be .cpp files).
- Your project must build properly. The most points an assignment can receive if it does not build properly is 65 out of 100.