Extend an existing implementation of ‘Stickman’

Problem Description
Your final assignment will be to extend an existing implementation of ‘Stickman’ (that is not your own) to add
features, leveraging your knowledge of OOP and design patterns. This will then drive your written code review
of the existing implementation.
Implementation Details
Prior to beginning on this phase, you will be sent an implementation of Stickman Stage 2. This implementation
may be from a student of this or a different semester or maybe from the teaching team (for privacy reasons
no names or identification will be given). Your goal is to extend andmaintain this implementation. What this
means is to add features to the existing implementation without breaking the implementation (it runs – rule #1
is don’t break working code) or using unnecessary ‘hacks’, by using OO design best practices and appropriate
patterns throughout. Some of the feedback you will have received in earlier phases will be relevant to
identifying what is or is not best practice, but you will need to apply this to the new context of somebody else’s
You are not required to correct the existing design of the implementation – you must retain the existing design
wherever changes are not required and will be penalised should this be changed without cause (for example,
replacing the given implementation with your own phase 2 code). The idea here is that you work with the
existing design rather than against it and minimise required changes to the existing structure (reasonable,
limited scope refactoring to support extensions is encouraged).
There are 3 features you must implement:
Level Transition – moving from level 1 to n as the hero achieves the goal (finish line crossed) then
showing ‘Winner’ when level n is completed. These levels can either be contained within the same
configuration file, or you can use multiple configuration files.
Score – The game must record and display on the screen an updating score. Levels have a target time
(set in the configuration file) – for every 1 second below this time there is 1 point, for every 1 second over
this time there is -1 point. There are +100 points per enemy defeated. Losing a life does not impact
points. The minimum level score is 0. You must display the current level’s score on screen during the
level (which will visibly be counting down to 0), as well as the total score for all previous levels.
Save and Load – the player must be able to save the state of the game (quicksave), then reload that
saved game at any point in time (quickload). The full state of the game must be reverted to the saved
state at that time (including Level, Score, and all Entities). This must be a single saved state that is not
written to disk, and each subsequent quicksave overwrites the existing saved state. Quickload reverts
the game state to the single saved version. This should be controlled using keyboard keys (e.g. q and s).
Demo Details
You are required to demonstrate your implemented features to your tutor. In order to keep a level playing field
with the different tutorial times and days this must be based on code you submit on the Monday of Week 13 –
the submission box will close at 11:59pm on Monday night and no further submissions can be accepted
without Special Consideration or Academic Plans. As there is no direct mark weight to this part of the
assessment the usual 5% late penalty format cannot be applied.
Your code must run on the university lab machines without editing. The specific process will be the tutor
observing you downloading the zip folder of your code onto a lab machine (not your own), unzipping this
folder, and using gradle run. Your code must run without modification or IDE to be accepted. You should test
this prior to the demo day! Your tutor will then test out the extensions you have implemented.
Please note that these features are all or nothing: 3 partially working features = 0 features. For this reason you
should work on them in sequence before moving on to the next feature.
If you wish to demo your code in Week 12 this is also acceptable (and highly recommended)

Leave a Reply

Your email address will not be published. Required fields are marked *