CS计算机代考程序代写 algorithm Java Assignment 2 — Report

Assignment 2 — Report
Submit Assignment
Due Monday by 23:59 Points 6 Submitting a file upload File Types pdf Available after Sep 21 at 23:59
Implementation Task
Problem Overview
You are required to design and implement an application model for a platformer video game Stickman in three stages. The video game consists of a character on the screen, can move left, right and has the ability to jump. In later stages, the character will interact with the world, have a floor to stand on, obstacles to interact with (bounce, hit, ..) and maintain a score.
You will need to ensure that your application is configurable with a JSON text file, allowing configuration of the main character’s size, background cloud velocity. You are given an example JSON file format here.
Q: What is a platformer video game?
A: You can find the most famous example: https://www.youtube.com/watch?
v=n4Vpeoaw6g4
Q: Who is Stickman?
A: Stickman is the simplest character to draw: https://en.wikipedia.org/wiki/Stick_figure
Assignment 2 Requirement
In assignment 2, you are going to implement your Stickman game and refactor your UML model according to your code. You must use design patterns (i.e., Factory Method, Builder, Strategy and State) in your implementation wherever you notice a need for them. Note that, using the design patterns incorrectly or in places where they do not provide a benefit will not lead to marks. Please find the detailed tasks below:

You will use Java Programming Language to implement your UML model you designed in assignment 1. In this assignment, you are now responsible for the implementation of the entire application code including everything (e.g., model package, view package, resources, etc).
What we provide to you?
Codebase: the codebase is still provided to you here (the same codebase you used in your assignment 1) but you are allowed to decide by yourself to use as much or as little of this existing code in your implementation. Please note that, this provided codebase was not given to you as an example of good design. You are also allowed to source images or draw images by yourself for your game (ensure you acknowledge any image source in a readme file).
JSON file: an example JSON file format is provided to you here that you can start with for implementing your configuration file.
gradle file: a sample build.gradle file is provided to you here.
2D AABB (Axis-Aligned Bounding Box) Function: it may be helpful for you in your implementation.
A simple collision/box intersection detection function allows your program to detect when two rectangular shapes have intersected. This is a general algorithm that checks for an overlap between two rectangles, returning true if an overlap has occurred.
aabbintersect (box1, box2):
return (box1.x < (box2.x + box2.width)) and ((box1.x + box1.width) > box2.x) and
(box1.y < (box2.y + box2.height)) and ((box1.y + box1.height) > box2.y)
What we expect from you?
Your stickman game is now expected to support the following 4 features in your code:
The stickman can be created in two sizes which are defined within your JSON configuration file. The size of the stickman is as a string whose options are normal and large. Stickman¡¯s starting position is as an x-y coordinate. Your stickman must be able to move around the stage (move left and right

continuously) and jump. Camera follows Stickman’s movement (
horizontal and vertical, a demo can be found as follows if you are confused). Demo
Loading different levels
Levels must be loaded from your JSON configuration file which gives instructions for a different assets to be loaded and positioned
Level information must include platforms (that do not move), enemies, mushrooms, a finish flag position and stickman. The stickman must be able to stand on platform objects and must not be able to intersect with any object. The stickman is able to touch the finish flag, at which time the level (and in this assignment the game) will finish. The location of all objects must be configurable.
Levels will contain mushrooms which will strengthen the stickman
If the stickman touches the mushroom, the mushroom will disappear and the stickman will now gain the ability to shoot bullets.
Touching multiple mushrooms (beyond the first) will have no effect on the stickman.
Levels will contain enemy agents which will harm the stickman
Enemies have different movement personalities (e.g., some enemies move from left to right, some in the opposite direction, etc)
If the stickman shoots enemies, the enemy will disappear
If the stickman touches enemies in any other way, the stickman will lost a life and start back at the originally configured location
Note that, there are some features that you don’t need to implement in your current assignment
Background objects (clouds) must move at a constant speed Level transitions during execution of the game
Currently the game loads a single given level file on startup and ends when that level is complete.
both

Report Task
You are allowed a maximum of 1000 words report in this assignment which must concisely cover the followings:
1. A discussion on how your design for assignment 1 helped or hindered your extensions made in this assignment
Rationalise changes you have made to your assignment 1 design
2. A discussion on each design pattern you have used including
Which design pattern you chose
Where you used it (be explicit as to what classes are involved and in what roles)
What this pattern does for your code in terms of SOLID/GRASP principles What overall benefits this pattern provides (be specific to your code, not the pattern in general)
What drawbacks this pattern causes (be specific to your code, not the pattern in general)
3. A UML class diagram describing your whole system with design patterns into consideration.
4. Any acknowledgement/reference required.
Submission Details
You are required to submit all assessment items by the due date listed on Canvas.
Report. Submit your UML class diagram and your report as a SINGLE pdf document on this portal. If your UML diagram is too large, you can follow the instructions here (https://edstem.org/courses/4701/discussion/298515) . Code. Your code should be submitted via the Ed assessment portal here (https://edstem.org/courses/4701/assessments/21130) . Your submission must only include your src folder, build.gradle and readme.txt (very important).
A readme file covering any point you would like your marker to know how to run your code (e.g., any quirks to run your application)
a description of your JSON format

what configuration file name(s) that your markers can use to demo the “loading different levels” feature of your code
what does your marker need to do in order to demo your “load different levels” feature
which key on the keyboard should be pressed by your maker so that your stickman can shoot bullets.
Academic honesty
While the University is aware that the vast majority of students and staff act ethically and honestly, it is opposed to and will not tolerate academic dishonesty or plagiarism and will treat all allegations of dishonesty seriously.
Further information on academic honesty, academic dishonesty, and the resources available to all students can be found on the academic integrity pages on the current students website: https://sydney.edu.au/students/academic- integrity.html (https://sydney.edu.au/students/academic-integrity.html) .
Further information for on research integrity and ethics for postgraduate research students and students undertaking research-focussed coursework such as Honours and capstone research projects can be also be found on the current students website: https://sydney.edu.au/students/research-integrity- ethics.html (https://sydney.edu.au/students/research-integrity-ethics.html) .
Compliance statement
In submitting this work, I acknowledge I have understood the following:
I have read and understood the University of Sydney’s Academic Honesty in Coursework Policy 2015 (https://sydney.edu.au/policies/showdoc.aspx? recnum=PDOC2012/254&RendNum=0) .
The work is substantially my own and where any parts of this work are not my own I have indicated this by acknowledging the source of those parts of the work and enclosed any quoted text in quotation marks.

The work has not previously been submitted in part or in full for assessment in another unit unless I have been given permission by my unit of study coordinator to do so.
The work will be submitted to similarity detection software (Turnitin) and a copy of the work will be retained in Turnitin’s paper repository for future similarity checking. Note: work submitted by postgraduate research students for research purposes is not added to Turnitin’s paper repository.
Engaging in plagiarism or academic dishonesty in coursework will, if detected, lead to the University commencing proceedings under the Academic Honesty in Coursework Policy 2015 (https://sydney.edu.au/policies/showdoc.aspx? recnum=PDOC2012/254&RendNum=0) and the Academic Honesty Procedures 2016 (http://sydney.edu.au/policies/default.aspx? mode=glossary&word=Academic+honesty) .
Engaging in plagiarism or academic dishonesty in research-focussed work will lead to the University commencing proceedings under the Research Code of Conduct 2013 (https://sydney.edu.au/policies/showdoc.aspx? recnum=PDOC2013/321&RendNum=0) and the Academic Honesty Procedures 2016 (http://sydney.edu.au/policies/default.aspx? mode=glossary&word=Academic+honesty) .
Engaging another person to complete part or all of the submitted work will, if detected, lead to the University commencing proceedings against me for potential student misconduct under the University of Sydney (Student Discipline) Rule 2016 (http://sydney.edu.au/policies/showdoc.aspx? recnum=PDOC2017/441&RendNum=0) .
Assignment 2 Report

Criteria
Ratings
Pts
Discussion on Design Changes
This does not include purely functional changes
1.0 pts Full Marks
Covered the design changes you have made from the assignment 1 UML or the initial codebase.
0.5 pts Half Marks
Weak discussion on the design changes you have made from your assignment 1 design or initial codebase
0.0 pts No Marks
no discussion on the design changes you have made from your assignment 1 design or initial codebase
1.0 pts
UML Diagram — Design Pattern Part
1.0 pts Full Marks
Have correctly displayed the design pattern(s) used in the code implementation
0.5 pts Half Marks
Have displayed the design pattern(s) used in the code implementation with flaws
0.0 pts No Marks
Have displayed the design pattern(s) used in the code implementation with major flaws or not matching the code implementation
1.0 pts
UML Diagram — Element Part
1.0 pts Full Marks
Have drawn all required elements correctly
0.5 pts Half Marks
Have drawn some of the required elements correctly
0.0 pts No Marks
Have drawn the UML elements with major flaws or haven’t drawn the UML diagram
1.0 pts
Identifying Design Patterns
What design pattern(s) did you use in your code and where did you use it/them?
1.0 pts Full Marks
Identifying the design pattern(s) and where they are used in the code implementation — specific to your code
0.0 pts No Marks
Incorrectly identifying the design pattern(s) used in the code implementation or no design pattern(s) presented
1.0 pts

Criteria
Ratings
Pts
Discussion on Design Patterns
Comment on benefits and drawbacks of the design pattern(s) you used
2.0 pts Full Marks
Comment on benefits and drawbacks of design patterns you used according to design principles and OO theory — specific to your code
1.0 pts Half Marks
Comment on benefits and drawbacks on using these design patterns according to design principles and OO theory — specific to your code — with major flaws or omission
0.0 pts No Marks
No discussion on benefits and drawbacks on using these design patterns according to design principles and OO theory or not specific to your code
2.0 pts
Total Points: 6.0