ITECH XXXXXXXXXXAssignment 1 Specification ITECH7201 Software Engineering: Analysis and Design CRICOS Provider No. 00103D 1817 ITECH7201 Assignment 2 specification.docx Page 1 of 6 Assignment 2...

1 answer below »
its a detective game and follow the marking criteria


ITECH1000-5000 Assignment 1 Specification ITECH7201 Software Engineering: Analysis and Design CRICOS Provider No. 00103D 1817 ITECH7201 Assignment 2 specification.docx Page 1 of 6 Assignment 2 Important Note This assignment requires the use of a provided code base. You must use the code provided in the Assessment section of Moodle. Do not use code given to you by another student (or past student) as you will be awarded ZERO MARKS for the assignment task. 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. Note: It is recommended that you spend some time familiarising yourself with the provided code base prior to beginning any work on this assignment. You should start by spending some time exploring the structure of the code to gain an understanding of the roles each class plays within the system and then complete Lab 7. Timelines and Expectations Percentage Value of Task: 20% Due: 23:55 Sunday 30th October 2018 (week 11) Minimum time expectation: 20 hours 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 CRICOS Provider No. 00103D 1817 ITECH7201 Assignment 2 specification Page 2 of 6 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. A fully-functional emulator for this game is available at: https://archive.org/details/msdos_Where_in_the_World_is_Carmen_Sandiego_1985 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. https://archive.org/details/msdos_Where_in_the_World_is_Carmen_Sandiego_1985 CRICOS Provider No. 00103D 1817 ITECH7201 Assignment 2 specification Page 3 of 6 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. Please note that assignments will NOT be marked and zero marks will be allocated if the individual statements of personal and partner contributions are not submitted. CRICOS Provider No. 00103D 1817 ITECH7201 Assignment 2 specification Page 4 of 6 Submission Each group must submit a single zip file which contains all the assignment files. This includes a photograph or a scanned image of your hand-drawn map with the locations, suspects and clues, source code for each deliverable / milestone, and your group report. Each individual must also submit their own individual report of contribution statements. CRICOS Provider No. 00103D 1817 ITECH7201 Assignment 2 specification Page 5 of 6 Marking Criteria/Rubric Student ID Partner ID Student Name Partner Name Pre-Requisites For Marking – Individual Task • Statement of personal contribution and partner’s contribution. Note that partners may receive different marks to reflect individual assignment contributions. Task Available Marks Student Mark Paired Tasks – Note: penalty of half the available marks for work completed individually
Answered Same DayOct 04, 2020ITECH1000

Answer To: ITECH XXXXXXXXXXAssignment 1 Specification ITECH7201 Software Engineering: Analysis and Design...

Meenakshi answered on Oct 07 2020
134 Votes
JavaApplicationgame/build.xml

Builds, tests, and runs the project JavaApplicationgame.


JavaApplicationgame/build/built-jar.properties
#Sun, 07 Oct 2018 08:35:20 +0530
C\:\\Users\\DELL\\Documents\\NetBeansProjects\\JavaApplicationgame=
JavaApplicationgame/build/classes/javaapplicationgame/Enemy.class
package javaapplicationgame;
public synchronized class Enemy {
private int lives;
private boolean death;
public void Enemy();
public void Enemy(int, boolean);
public int attack();
public int damage(int);
public void setLives(int);
public int getLives();
public void setDeath(boolean);
public boolean getDeath();
public String toString();
}
JavaApplicationgame/build/classes/javaapplicationgame/GAMEPLAYER.class
package javaapplicationgame;
public synchronized class GAMEPLAYER {
private String name;
private int health;
private boolean death;
private boolean[] inventory;
public void GAMEPLAYER();
public void GAMEPLAYER(String, int, boolean, boolean[]);
public void setName(String);
public String getName();
public void setHealth(int);
public int getHealth();
public void setDeath(boolean);
public boolean getDeath();
public void setInventory(boolean[]);
public boolean[] getInventory();
public int damage(int);
public void heal();
public int attack();
public String toString();
}
JavaApplicationgame/build/classes/javaapplicationgame/JavaApplicationgame.class
package javaapplicationgame;
public synchronized class JavaApplicationgame {
public void JavaApplicationgame();
public static void main(String[]);
}
JavaApplicationgame/build/classes/javaapplicationgame/Startgame.class
package javaapplicationgame;
public synchronized class Startgame {
private final int LOBBY;
private final int BAR;
private final int KITCHEN;
private final int BEDROOM;
private final int BATHROOM;
private final int OUTSIDE;
private int roomNum;
public void Startgame();
public void Startgame(int);
public void setRoomNumber(int);
public int getRoomNumber();
public String getRoomDescription(boolean[], Enemy);
public boolean[] lobbyRoom(String, boolean[], GAMEPLAYER);
public boolean[] barRoom(String, boolean[], GAMEPLAYER);
public boolean[] kitchenRoom(String, boolean[], GAMEPLAYER, Enemy);
public boolean[] bedRoom(String, boolean[], GAMEPLAYER);
public boolean[] bathRoom(String, boolean[], GAMEPLAYER);
public boolean[] outsideRoom(String, boolean[], GAMEPLAYER, Enemy);
}
JavaApplicationgame/dist/Java
Applicationgame.jar
META-INF/MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.7
Created-By: 1.8.0_181-b13 (Oracle Corporation)
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Main-Class: javaapplicationgame.JavaApplicationgame
javaapplicationgame/Enemy.class
package javaapplicationgame;
public synchronized class Enemy {
private int lives;
private boolean death;
public void Enemy();
public void Enemy(int, boolean);
public int attack();
public int damage(int);
public void setLives(int);
public int getLives();
public void setDeath(boolean);
public boolean getDeath();
public String toString();
}
javaapplicationgame/GAMEPLAYER.class
package javaapplicationgame;
public synchronized class GAMEPLAYER {
private String name;
private int health;
private boolean death;
private boolean[] inventory;
public void GAMEPLAYER();
public void GAMEPLAYER(String, int, boolean, boolean[]);
public void setName(String);
public String getName();
public void setHealth(int);
public int getHealth();
public void setDeath(boolean);
public boolean getDeath();
public void setInventory(boolean[]);
public boolean[] getInventory();
public int damage(int);
public void heal();
public int attack();
public String toString();
}
javaapplicationgame/JavaApplicationgame.class
package javaapplicationgame;
public synchronized class JavaApplicationgame {
public void JavaApplicationgame();
public static void main(String[]);
}
javaapplicationgame/Startgame.class
package javaapplicationgame;
public synchronized class Startgame {
private final int LOBBY;
private final int BAR;
private final int KITCHEN;
private final int BEDROOM;
private final int BATHROOM;
private final int OUTSIDE;
private int roomNum;
public void Startgame();
public void Startgame(int);
public void setRoomNumber(int);
public int getRoomNumber();
public String getRoomDescription(boolean[], Enemy);
public boolean[] lobbyRoom(String, boolean[], GAMEPLAYER);
public boolean[] barRoom(String, boolean[], GAMEPLAYER);
public boolean[] kitchenRoom(String, boolean[], GAMEPLAYER, Enemy);
public boolean[] bedRoom(String, boolean[], GAMEPLAYER);
public boolean[] bathRoom(String, boolean[], GAMEPLAYER);
public boolean[] outsideRoom(String, boolean[], GAMEPLAYER, Enemy);
}
JavaApplicationgame/dist/README.TXT
========================
BUILD OUTPUT DESCRIPTION
========================
When you build an Java application project that has a main class, the IDE
automatically copies all of the JAR
files on the projects classpath to your projects dist/lib folder. The IDE
also adds each of the JAR files to the Class-Path element in the application
JAR files manifest file (MANIFEST.MF).
To run the project from the command line, go to the dist folder and
type the following:
java -jar "JavaApplicationgame.jar"
To distribute this project, zip up the dist folder (including the lib folder)
and distribute the ZIP file.
Notes:
* If two JAR files on the project classpath have the same name, only the first
JAR file is copied to the lib folder.
* Only JAR files are copied to the lib folder.
If the classpath contains other types of files or folders, these files (folders)
are not copied.
* If a library on the projects classpath also has a Class-Path element
specified in the manifest,the content of the Class-Path element has to be on
the projects runtime path.
* To set a main class in a standard Java project, right-click the project node
in the Projects window and choose Properties. Then click Run and enter the
class name in the Main Class field. Alternatively, you can manually type the
class name in the manifest Main-Class element.
JavaApplicationgame/manifest.mf
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
JavaApplicationgame/nbproject/build-impl.xml















































































































































































































Must set src.dir
Must set test.src.dir
Must set build.dir
Must set dist.dir
Must set build.classes.dir
Must set dist.javadoc.dir
Must set build.test.classes.dir
Must set build.test.results.dir
Must set build.classes.excludes
Must set dist.jar




































































































Must set javac.includes
































































































































No tests executed.























































































































































































































































Must set JVM to use for profiling in profiler.info.jvm
Must set profiler agent JVM arguments in profiler.info.jvmargs.agent





























































































































































































































Must select some files in the IDE or set javac.includes













































To run this application from the command line without Ant, try:

java -jar "${dist.jar.resolved}"










































Must select one file in the IDE or set run.class



Must select one file in the IDE or set run.class






















Must select one file in the IDE or set debug.class




Must select one file in the IDE or set debug.class




Must set fix.includes









This target only works when run from inside the NetBeans IDE.








Must select one file in the IDE or set profile.class
This target only works when run from inside the NetBeans IDE.








This target only works when run from inside the NetBeans IDE.












This target only works when run from inside the NetBeans IDE.



































Must select one file in the IDE or set run.class





Must select some files in the IDE or set test.includes




Must select one file in the IDE or set run.class




Must select one file in the IDE or set applet.url






































































Must select some files in the IDE or set javac.includes



















Some tests failed; see details above.








Must select some files in the IDE or set test.includes



Some tests failed; see details above.



Must select some files in the IDE or set test.class
Must select some method in the IDE or set test.method



Some tests failed; see details above.




Must select one file in the IDE or set test.class



Must select one file in the IDE or set test.class
Must select some method in the IDE or set test.method













Must select one file in the IDE or set applet.url








Must select one file in the IDE or set applet.url



















...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here