Reference no: EM132144572 
                                                                               
                                       
Overview
You are   required to modify and logically extend the functionality of a  provided  code base to implement a game. This requires you to modify the  code  base as well as create documentation and implement various user  stories.
You   will use the Boost methodology discussed during lectures, including   using Paired Programming to complete this assignment. You must work in   pairs, unless you have received explicit approval in writing from your   lecturer to vary this requirement.
The   code base provided for this assignment has already implemented the "warm   up" and some "sets". You will be implementing numerous other "sets"  for  this assignment using the Boost methodology. The "warm down" stage  is  not required.
You are free to take ideas discussed during lectures and implement these in your own version of the code.
This   assignment will be marked according to the functionality of your code,   in addition to the elegance and extensibility of your design and quality   of your documentation.
Learning Outcomes Assessed
The following course learning outcomes are assessed by completing this assessment:
- S1. Apply software design principles to design and document software that utilises design patterns
- S2. Analyse source code and develop comprehensive unit test suites
- S3. Operate CASE software to document the design of a piece of software
- S4. Apply refactoring to identify poor programming practice in existing source code and improve its structure and readability
- S5. Apply an appropriate software development methodology to the development of a software system
Assessment Details
Where   In The World Is Carmen Sandiego was a popular edutainment computer game   first released in 1985 by Broderbund Software Inc. Players performed  the  role of a detective who travelled around the world finding clues to   track the villain and solve various crimes committed by a gang led by   Carmen Sandiego. When enough clues were found to identify the villain, a   warrant would be issued, the villain arrested and a trial held to see   if the correct person had been arrested. Eventually, after solving a   number of cases, Carmen Sandiego herself could be captured, which would   earn the detective a place in the ACME Hall of Fame.
Your   task is to implement your own version of this game, in which a detective   will attempt to solve a crime by travelling to various cities around   the world. At each city, the detective will explore the location and   speak with local people to discover clues to identify, track and   ultimately arrest the culprit.
This assignment must be completed in pairs.
1. Design and implement a custom environment for your game.
This requires:
a.   Creating your own hand-drawn representation of the world map and   changing the HardCodedData file to reflect the details on this map. This   needs to include:
i. at least four (4) locations to travel through,   in addition to the starting location of ACME Headerquarters. One of  the  four custom locations is to be the place where the villain is  hiding,  hoping to avoid capture. These locations form the path the  villain has  followed and the detective will need to trace in order to  locate the  villain. This path must be clearly identified on the map.
ii.   Sufficient additional locations for alternative destinations so that  the  detective must use clues to determine the correct path to take.
iii. names and student ids of the team members who created the map.
b.   Compiling a list of at least six (6) suspects and their identifying   features, one of whom must be the villain. These suspects must be unique   so that it is possible to find clues to eliminate all but one of the   suspects from the search.
c. For each location, including the   locations that are not part of the correct path, documenting the non-   player characters and the clues, as well as any additional items you may   choose to include, that will be available in that location. You may  use  a generic set of non-player characters and / or clues for locations   that are not on the correct path if you wish. The final location will   need to include the villain as one of the non-player characters. The   clues must enable the villain to be identified as well as allowing the   detective to follow the correct path.
IMPORTANT NOTE: If you   correctly apply the design patterns in your assignment code, all of this   game play- specific data will be in the hard-coded data file,  separated  from the code that controls the behaviour of your game.
2. Implement each of the following deliverables / milestones, using the design patterns covered in classes:
a.   functionality as detailed in Lab 7 and Lab 8. You may customise the   names of commands to better suit the context, for example: move may be   better represented by fly.
b. commands to enable game play for a   minimum of one case. You may customize these commands to suit your   variation of the game, but at a minimum, need to include:
i. allowing   a user to identify and read clues, be these from items in the location   or through interacting with NPCs in each location.
ii.   entering details of known villain attributes from clues for Interpol to   compare these attributes with the list of subjects to identify a list  of  suspects who match the attributes provided. This may be repeated as   often as required, with the intent being to eliminate all suspects bar   one so that the true villain can be identified.
iii. issuing a   warrant from Interpol once only one suspect remains as per b) ii. The   detective must be carrying a warrant for a suspect in order to arrest   that particular suspect, and only one warrant may be carried at any   time.
c. The ability to arrest a suspect. This command must be   context-specific, so it is only available when the detective has been   issued a warrant, and only when a suspect is present in the current   location. The detective must only win the game if the correct suspect   has been arrested.
3.   Produce a short video (up to 5 minutes) and upload this to YouTube as an   unlisted file. A link to view this on YouTube must be submitted with   your assignment. All team members must actively participate (be visible   throughout the recording and contribute equally to the discussion) in   the video to:
a. Provide a demonstration of the game - how the game play works and how this was implemented
b.   Explain the role of design patterns in the game, clearly identifying   the functionality where design patterns have had an impact and how this   has occurred.
c. Reflect on the use of a development methodology in   creating the game. How did this assist, or make the development of the   game more complicated?
This video will be assessed based on the   clarity and accuracy of the explanations and how clearly it demonstrates   an understanding of how the game was coded, the design patterns used   and the impact of using a development methodology. All required design   patterns must be implemented to be eligible for full credit for this   component, otherwise marks will be available on a pro-rata basis. All   team members must contribute equally to the discussion and be visibly   involved in the demonstration. The quality of the video itself will not   be assessed - using a mobile phone to record this is fine. If you do  not  have access to recording facilities, please speak with your tutor  prior  to week 9 to make arrangements to have this recorded.
4. Prepare a report, to be submitted as a Word document or a PDF, which includes:
a. The student number and name of each person on your team
b. User stories for each of the deliverables / milestones
c. Class diagrams for Lab 7 and Lab 8
d. Sequence diagrams for any two (2) of the game play commands of your choice
e. A link to the YouTube video demonstration
Individually
5. Prepare an individual report that includes:
a. A statement of your own personal contribution to the assignment
b. A statement of your partner's personal contribution to the assignment.
Attachment:- Assignment specification.zip