代写 game UML XML CSE335 Project 1 Description 2019/10/3 下午11(12

CSE335 Project 1 Description 2019/10/3 下午11(12
(https://msu.edu)
CSE335 (/cbowen/cse335/) Project 1 Description
Project 1: UML Wars
(https://facweb.cse.msu.edu/cbowen/cse335/project1/)
You are creating a game call UML Wars. Here is what the game will look like:
https://facweb.cse.msu.edu/cbowen/cse335/project1/description.php 第 1 ⻚页(共 5 ⻚页)

CSE335 Project 1 Description 2019/10/3 下午11(12
In the game you are a grader for CSE335. You use the mouse to control Harold, who rotates left and right depending on the mouse position. Harold is holding a red pen and stands ready to mark down bad UML.
How do I draw Harold rotated?
During the game UML drops from above. The UML is either a single class for a pair of classes with an inheritance relationship. Some of the UML is good and some of it is bad. Clicking the mouse button throws the red pen. When it hits the UML, the class stops moving and one of two things happens:
If the UML is bad, the reason the UML is bad is displayed for one second, then the class disappears. One is added to the correct count.
If the UML is good, the word Unfair! is displayed for one second, then the class disappears. One is added to the unfair count.
If the UML passes below the bottom of the screen, one is added to the Missed count if the UML is bad.
We have three scores:
1. Correct – The number of times bad UML is correctly marked as bad.
2. Missed – The number of missed bad UML that managed to sneak through.
3. Unfair – The number of time you flagged good UML as bad.
The grader holds the pen. When the mouse is clicked, the pen flys in the direction the grader is pointed. It is released from the grader’s hand. A new pen appears in the hand after one second. The grader cannot shoot again until a new pen is available to shoot. See the prototype demo to see how this should work.
A complete, operational prototype is available that you can download and run. Download this archive and extract to a folder. Run the file UMLWars.exe in the folder. The reference implementation is the ultimate definition of how the program should work (not including the Team Features).
https://facweb.cse.msu.edu/cbowen/cse335/project1/description.php 第 2 ⻚页(共 5 ⻚页)

CSE335 Project 1 Description 2019/10/3 下午11(12
(UMLWars.zip) UMLWars.zip (UMLWars.zip)
Here is an archive with images and the XML data file that you can use:
(images.zip) images.zip (images.zip)
Team Features
Your team must propose one or two team features, depending on the team size. A team feature is some functionality beyond the basic prototype. Your team features must be described on the submission page by the end of Spring 1 and are subject to approval by course staff. Team features are your opportunity to be creative in the implementation of Project 1 and to design and implement some feature entirely of your own devising. Course staff will not provide example team features! You are welcome to discuss potential team features with Dr. Owen.
Teams of 4 or 5 are required to propose and implement one team feature.
Teams of 6 are required to propose and implement two team features.
Team Features must be proposed by the end of Sprint 1. Course staff will review team features and indicate if any feature is deemed to be either insufficiently interesting or too complex or difficult. Team Features must be described on the submission page.
Scoring Area
The top of the screen is a scoring area which always displays the correct, missed, and unfair scores. The scores must display on top of any other content.
Be reasonable about team features. It is very common that teams will propose features that are too complex or large to be completed as part of the project. If we see that we will indicate so.
https://facweb.cse.msu.edu/cbowen/cse335/project1/description.php 第 3 ⻚页(共 5 ⻚页)

CSE335 Project 1 Description 2019/10/3 下午11(12
Rules and Requirements
The following issues are essential and will result in large deductions if violated:
A single list of items on screen and no redundant lists. This means that the items in the playing area must exist in one and only one list. You are not allowed to have separate lists for UML and pens. This is not necessarily the best way to design this project, but does accomplish a pedagodical purpose. You are allowed to keep a pointer to Harold as a member variable if you wish. You are allowed to create temporary lists. For example, if you wanted to create a visitor that finds all UML and returns a list of them, that will be okay. But, that list must be temporary and immediately destroyed after you are through using it.
One of the major elements of this project is learning to deal with a collection of mixed items. You may have to use visitors in this program.
No downcasts or run-time type identification. In particular, you are not allowed to create a function like: IsPen() or IsUML().
You must ensure no image is loaded from a file more than once. In particular, the pen should not be reloaded every time it is displayed.
Testing
Testing is difficult to add as an element of projects like this. If there is no testing requirement, few teams will add any testing at all. If there is a specific requirement, teams will often rush in some testing in the last few days to meet the requirement. Since the idea of unit testing is that it is an element of the development process, not a later-on add-on, this entirely misses the point. Also, testing is difficult in general for highly interactive applications such as this.
Therefore, here is the project requirement for testing:
1. You must add at least 5 test classes.
2. You must test at least 10 different functions.
3. Your tests must include at least 20 total meaningful
assertions.
4. Testing added to GIT in the last week of the project will
not count towards these totals.
https://facweb.cse.msu.edu/cbowen/cse335/project1/description.php 第 4 ⻚页(共 5 ⻚页)

CSE335 Project 1 Description 2019/10/3 下午11(12
5. At no point is anyone to be assigned a task to write tests.
What does meaningful assertions mean? Nobody is to be assigned to write tests?
Project 1: UML Wars (https://facweb.cse.msu.edu/cbowen/cse335/project1/)
35 questions, 6 announcements
Interact!
CSE335 Home Page (/cbowen/cse335/)
CaDllr.MCSUh:a(r5l1e7s) 3B5.5-O18w55en (Vhistitt:pmss:u//.ewdwuw(.hctstep.:m//smus.eud.eud/u~)cbowen)
MSU is an affirmative-action, equal-opportunity employer.
(http://www.msu.edu) Computer Science and Engineering (https://www.cse.msu.edu/)
SPARTANS WILL © Michigan State University
https://facweb.cse.msu.edu/cbowen/cse335/project1/description.php 第 5 ⻚页(共 5 ⻚页)