22/05/2018 Assignment 3
Assignment 3
Submit Assignment
Due Jun 8 by 18:00 Points 15 Submitting a file upload Available May 18 at 18:00 Jun 29 at 23:59 about 1 month
Assignment 3
Extend someone else’s implementaon of a simple pool game.
You can make slight changes to the code you have received, this includes bug fixes, slight changes to method declarations and definitions. However you cannot change the overall structure of the program. In addition if your program is provided a config file that would be a valid config file for assignment 2 it should behave identically (minus any bugs). The following additions are only valid if stage 3 is defined as true in the config file.
The game can now revert back to a previous shot
At any point in the game the player may press ‘r’ at which point the game state reverts to the last time a shot was able to be taken with the cue ball. If there have been no opportunities yet, (either due to the cue ball not being set or the cue ball not having come to rest yet) then the game reverts to the original state it was in when the game loaded from the config file.
Extensions.
Since this is the last portion of the assignment you are now allowed to add anything you want to the game with no limits except that it cannot invalidate the previous requirements of the assignment. Marks will be awarded based on the difficulty and impact of the extension(s) implemented. For full marks you generally need at least 4 small extensions, 2 large extensions, or 1 excellent extension. Note that you will likely be using a design pattern within your extension(s) so larger extensions may make this easier. There is no upper limit to what you can do for the extension(s) but make sure you talk to your tutor about your choice before committing to it.
You must use the memento design paern and one addional paern of your choosing.
The memento design pattern must be used somewhere within this assignment as well as another additional design pattern. This additional design pattern cannot be already present within the assignment for it to be counted even if it is a separate instance of it. Note that this does not preclude you from using one that has already been used, in order to facilitate good design.
https://canvas.sydney.edu.au/courses/4799/assignments/55108 1/3
22/05/2018 Assignment 3
Config file
The only change to the config is the addition of a ‘stage3’ flag which functions identically to the ‘stage2’ flag from assignment 2. If both flags are present and true then the later stage flag takes precedent. If ‘stage3’ is true then it can also have as many other changes as you want to facilitate your extension(s).
Marking
There are two segments to this assignment: The code which is worth 10 and the essay which is worth 5.
The marking (out of 10 marks) for the code section is as follows: Compiling and running on the lab machines. (5%)
Same behavior as previous stages when run with old config files. (5%) The game can be reverted to an earlier state. (15%)
Extension(s) (20%)
Appropriate use of design patterns: Use of memento design pattern and at least one other design
pattern. (30%)
Sensible / appropriate OO design (Extensible code design, clear separation of responsibility, etc). (10%)
Clear code: meaningful variable and method names. (5%)
Documentation: Doxygen comments for methods/classes as well as incode comments where appropriate. (10%)
The marking (out of 5 marks) for the essay section is as follows
Received code:
How well designed was the code for extensions, what particular elements aided or hindered extensibility? (10%)
How well documented was the code with respect to both external documentation and comments? (10%) Was the coding well done? What would you have done differently? What was good/bad about the
implementation? (10%)
Comment on the style of the code. Were names, layout, code clichés consistent? (10%) Your code:
Explain the application of the design patterns for your code. (20%)
https://canvas.sydney.edu.au/courses/4799/assignments/55108
2/3
22/05/2018 Assignment 3
Explain advantage and disadvantages of the design patterns used with respect to your code. (20%) All code:
Graphical visualisation in UML of the code. (20%)
Late submissions incur a penalty of 20% per 24 hours late, rounded up to the nearest day.
For example, if the submission was made an hour late, you will lose 20%*15 marks, i.e. 3 marks out of your submission. If you scored 10/15, you will receive 7/15.
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/academicintegrity.html (https://sydney.edu.au/students/academic integrity.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.
Engaging in plagiarism or academic dishonesty 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 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) .
https://canvas.sydney.edu.au/courses/4799/assignments/55108
3/3