MCD4720辅导、辅导Y marks、讲解C++程序语言、讲解C++ 讲解R语言编程|辅导留学生 Statistics统计、回归、迭代

- 首页 >> 其他
MCD4720 - Fundamentals of C++
Assignment 1 - Trimester 1, 2019
Submission guidelines
This is an individual assignment, group work is not permitted
Deadline: March 24, 2019, 11:55pm
Weighting: 10% of your final mark for the unit
Late submission:
● By submitting a Special Consideration Form or visit this link: https://goo.gl/xtk6n2
● Or, without special consideration, you lose 5% of your mark per day that you submit late
(including weekends). Submissions will not be accepted more than 10 days late.
This means that if you got Y marks, only (0.95
n
)×Y will be counted where n is the number of days
you submit late.
Marks: This assignment will be marked out of 30 points, and count for 10% of your total unit marks.
Plagiarism: It is an academic requirement that the work you submit be original. If there is any evidence
of copying (including from online sources without proper attribution), collaboration, pasting from websites
or textbooks, Zero marks may be awarded for the whole assignment, the unit or you may be suspended
or excluded from your course. Monash Colleges policies on plagiarism, collusion, and cheating are
available here or see this link: https://goo.gl/bs1ndF
Further Note: When you are asked to use Internet resources to answer a question, this does not mean
copy-pasting text from websites. Write answers in your own words such that your understanding of the
answer is evident. Acknowledge any sources by citing them.
1Task Details:
This assignment is the first part of a larger project, which you will complete in Assignment 2.
The purpose of this assignment is to get you comfortable with planning of the C++ programming for
assignment 2. It is detailed later in this assignment specification, as is the specific marks allocation.
Submission Instructions:
The assignment must be created and submitted as a single Word or PDF document to the Moodle site
which must clearly identify and display both your Name and Student ID to facilitate ease of assessment
& feedback.
Your document file MUST be named “YourFirstNameLastNameID.docx” or
“YourFirstNameLastNameID.pdf”. This file must be submitted via the Moodle assignment submission
page.
NOTE! Your submitted file must be correctly identified and submitted (as described above).
Any submission that does not comply will receive an automatic 10% penalty (applied after
marking).
The document should contain the project plan and the UML diagram, you can use Microsoft visio to
draw the UML or you can use any other software.
Explicit assessment criteria are provided, however please note you will be assessed on the following
broad criteria:
Detail of a proposed project plan for the overall project
Creating accurate and complete UML diagrams
Using appropriate naming conventions, following the unit Programming Style Guide
If you have any questions or concerns please contact your tutor as soon as possible.
2Assignment Task: Go Fish
You are to implement a computer-based variant of the card game Go Fish. This is a two-player
card game played with a standard deck of cards in which the aim of the game is to capture sets
of four cards of the same value (for example 2, 3, Queen, etc.).
You can play an online version here: https://cardgames.io/gofish/. In your version, you will play
against one computer opponent.
For assignment 1 you will focus on the planning of the project and the UML diagrams of the
game and some simple interactivity. In assignment 2 you will focus on creating the various
interactive objects in the game and program the remaining player interactions.
Basic Game Play
To begin, seven cards are dealt to each player from a standard deck of 52 cards. The game
plays as follows:
● The first player asks the second player for a card of a particular value. They must ask for
a card of the same value as one of the cards in their hand.
● If the second player has a card of that value, they will remove it from their hand and give
it to them. If they do not have one, they will tell the player to “Go Fish!”. This means the
first player must take a new card from the deck.
● If the first player was successful in asking for a card, they can ask for another card. This
continues until they are told to “Go Fish”, at which point the second player will then start
the process of asking for a card.
● If a player gets four cards of the same value, they reveal the set to the other player, score
1 point, and remove those cards from their hand.
● If at some point a player has no cards in their hand, they take seven new cards from the
deck (or as many as left if there are less than seven).
● The game continues until all sets of cards are formed. The player with the most points
wins.
Computer Player:
Obviously, you as a player can make strategic choices as to which card you ask the other player
for. Your computer opponent does not need to be “intelligent”… it just needs to at least
randomly ask for a card that it has at least one of in its hand. You can implement any other AI
(Artificial Intelligence) you like as long as it conforms to that basic game rule. More sophisticated
AI can be considered extra functionality (see Assignment 2 brief for more details on this).
3Project Plan
Having a clear plan for your project before you begin coding is essential for finishing a
successful project on time and with minimal stress. So part of this assignment is defining what
will be in your project and what you need to do to actually develop it.
Important: You must also read the requirements for Assignment 2 in order to be able to
complete the documentation required for Assignment 1.
The documentation you must submit will include the following:
A description of “How to Play”
This will be the information you display on the opening screen of your game to inform the
player what they need to do in order to play and win the game. Do not just copy the game
play description above, make your own description.
Note: This description can be saved as a text file and read into your game when the
program begins. You can also use this as a convenient way to display “help” if the player
asks for it.
A development outline of your game
Using a simple outline format (numbered or bullet points) state the main actions that the
program will have and then, as sub-points, state the things you will need to do to make
that happen.
The outline structure should contain all the elements of your game, as this is a high level
description of your approach to the development of your program. You should include at
least the following headings and provide examples of happens under each section.
● The game setup
● The player’s turn
● Processing player input
● The opponent’s turn
● Processing opponent AI
● The end game conditions
● Additional Features included, if any – see Assignment 2
● Outline what will be in all your game classes – see Assignment 2
Here is an example to get you started with your project outline:
o The Game Setup
Display an overview of the game rule so the player knows what to do to win.
Initialise the game elements:
■ add the players – ask for the player’s name, assign a name to the opponent
■ add all the other things that will happen during initialisation including
● creating a deck of cards and shuffling them
● dealing cards to the players, etc.
4As you can see, you only have to describe the actions the program will take, not the code, for
the outline. The idea here is to give you a starting point for when you start writing your code as
you can use this as a checklist of the things you need to include.
UML Diagrams
UML diagrams are designed to make structuring your program easier. How to create
them will be covered in class, but the general structure is shown here – see Assignment
2 for more details about classes.
You will need UML diagrams for each of the classes you include in your game (as least a
Player, Card and Game class).
ClassName
list of attributes
(variables)
list of behaviours
(functions)
Assignment 1: Marking Criteria [30 marks in total]
Project Plan [24]
● Description of the rules (the introduction to your game) [2]
● Outline includes all game functionality (includes both Parts A and B) [2]
● Each section is broken into logical tasks [5]
● Task descriptions given provide sufficient detail [10]
● Tasks are performed in a logical order [5]
UML Diagrams [6]
● Correct structure used (Name, Attributes, Behaviours) [1]
● Included the correct designations for public (+) and private (-) data [2]
● All variables and functions have meaningful names [3]