CSC72003 Assignment 2 Weight: 30% of your final mark Due: XXXXXXXXXXMay XXXXXXXXXXpm Specifications Your task is to complete various exercises in BlueJ, using the Java language, and to submit these...

assignment



CSC72003 Assignment 2 Weight: 30% of your final mark Due: 24 May 2019 10 pm Specifications Your task is to complete various exercises in BlueJ, using the Java language, and to submit these via the MySCU link created for this purpose. Marking criteria includes: • Use of correct coding style, including the use of comments; • Accuracy of coding; • Use of suitable coding structures; • Correct submission and naming conventions of assessment items as required. Getting Help This assignment is to be completed individually. It is the opportunity to gain an understanding of the concepts of object oriented programming and coding syntax. It is important that you master these concepts yourself. You are permitted to work from the examples in the study guide or textbook but you must acknowledge assistance from other textbooks or classmates. In particular, you must not use online material or help from others, as this would prevent you from mastering these concepts. Who can you get help from? Use this diagram to determine from whom you may seek help with your program. Encouraged Attribution Required Ask tutor Not acceptable Lecturer Tutors Online Forums Relatives Students outside unit Hired coders Classmates Private Tutors Other Part I: Set up your assignment To set up your assignment you will need to do the following: • Create a folder called username-A2. For example, mine would be ahendr10-A2. • Copy the zuul-bad project in chapter 8 of the book projects to your username-A2 folder. • Create a word document called username-A2-documentation. For example, mine would be ahendr10-A2- documentation. Add your full name and student id to the footer. You will lose marks if you do not do this. Save this word document to your username-A2 folder. After you have set up your assignment open the zuul-bad project In BlueJ, create a new instance of the Game class, run the play method and familiarize yourself with the game. You should also: • Review the code style guide in topic 7 as this is the style you will be required to use in your assignment. • Download chapter 6 of the text book from topic 7 on mySCU as you will need this for the assignment. NOTE: When you submit your assignment, you will need to zip up your username-A2 folder and upload onto mySCU Design your game Using the given zuul game as a starting point, you must design your own game. Some possible game scenarios are described in Exercise 6.3 of the text. If you find it difficult to visualize this sort of game scenario, try modelling your game on some familiar real-world location. If you need additional inspiration, you can try playing the original Colossal Cave Adventure game. You must have the following in your game: • Your game scenario must have at least six (6) different rooms. • Your game scenario must have at least six (6) types of exits - north, south, east, west, up, down and any other you require. This requirement does NOT mean that each room must have 6 exits. • Your game scenario must include at least four (4) items that the player could find, pick up and potentially use. • Your game must have some way for the player to win. Most likely, this will be by achieving some goal such as finding a particular item, surviving for some specified number of moves... whatever makes sense for your game. Written Exercise 1 Write a brief description of your game in your word document. You must: • Describe your game including the back story and the setting • List the items in the game • Explain how the player wins Written Exercise 2 Draw a map for your game scenario. You must: • Label the rooms • Label the exits (connections between rooms) • Specify the locations of the items The map can be hand-drawn. You do not need to use a drawing program but your map must be clearly readable. This map must also be placed in the Word doc. Part 2: Written Exercise 3 Your game has 6 exits however the zuul-bad game only has 4 exits. Your will also have more rooms than zuul-bad and they will have different names. Copy the following template into your word document and replace the text for each of the methods. You must identify and describe the changes you would need to make to the zuul-bad project to convert it into your game. You need to consider the additional exits and rooms you have in your game. DO NOT WRITE THE CODE…YOU WILL NOT GET ANY MARKS you must identify and describe the changes. I have completed the Room class, so you can see what is required. --------------------TEMPLATE START------------------- Class Room Instance variables • Add an instance variables of type Room for the up exit • Add an instance variables of type Room for the down exit setExits method • Add a parameter of type Room to the setExits method for the up exit • Add a parameter of type Room to the setExits method for the down exit • Add an if statement to the setExits method to assign the up parameter to the up instance variable • Add an if statement to the setExits method to assign the down parameter to the down instance variable getDescription method • no changes needed Class Game Instance variables • Replace this text. Identify and describe the changes you need to make to the instance variables to add your additional exits and rooms in point form. If no changes are needed write no changes needed createRooms method • Replace this text. Identify and describe the changes needed in the createRooms method to add your additional exits and rooms in point form. If no changes are needed write no changes needed play method • Replace this text. Identify and describe the changes needed in the play method to add your additional exits and rooms in point form. If no changes are needed write no changes needed printWelcome method • Replace this text. Identify and describe the changes needed in the printWelcome method to add your additional exits and rooms in point form. If no changes are needed write no changes needed processCommand method • Replace this text. Identify and describe the changes needed in the processCommand method to add your additional exits and rooms in point form. If no changes are needed write no changes needed printHelp method • Replace this text. Identify and describe the changes needed in the printHelp method to add your additional exits and rooms in point form. If no changes are needed write no changes needed goRoom method • Replace this text. Identify and describe the changes needed in the goRoom method to add your additional exits and rooms in point form. If no changes are needed write no changes needed quit method • Replace this text. Identify and describe the changes needed in the quit method to add your additional exits and rooms in point form. If no changes are needed write no changes needed --------------------TEMPLATE FINISH------------------- Part 3: Written Exercise 4 The printWelcome method and the goRoom methods contain code duplication and both print a description of the current room and a list of the exits. This is not a good design. Explain why. Programming exercise 1 Correct the problem of repeated functionality in the printWelcome and goRoom methods by refactoring the repeated functionality out of these methods into a method of its own called getRoomExitsAndDescription. Then call this new method in each place the description and exits need to be displayed. Written Exercise 5 In the previous exercise you created the getRoomExitsAndDescription method that prints a description of the current room and a list of the exits. This code is contained in the Game class. This is not a good design. Explain why. Programming exercise 2 • Refactor the code that generates the list of the exits into a method named getExitString in the Room class. This method should return a String listing the exits from the room. For example, if the room has exits to the north and west, this method should return a String containing: "north west". • Add a method called getLongDescription to the Room class that returns a String containing the description of the current room and a list of the exits of a room (hint: call the getExitString method you just created • Now that each Room has a method that can print information about a Room refactor the code in the Game class to take advantage of this functionality. i.e. anywhere the Game class uses the getRoomExitsAndDescription method, change it to use your getLongDescription method. Written Exercise 6 Now that we have made some changes to our code create a template similar to the template I provided for written exercise 3 for the Game and Room class (note that it will be different as you now have new methods and have refactored code into different classes). Then identify and describe the changes you would need to make to the zuul-bad project to convert it into your game, just like you did in written exercise 3. You need to consider the additional exits and rooms you have in your game. DO NOT WRITE THE CODE…YOU WILL NOT GET ANY MARKS you must identify and describe the changes. Written Exercise 7 Answer the following question. Has the design improved? You must explain why or why not. Programming exercise 3 • Update the comments at the beginning of the Game class, the Room class and the message displayed by the printWelcome method so that they describe your game. • Update the Game and Room class so that it creates the rooms and exits that you invented for your game. You do
May 27, 2021CSC72003Southern Cross University
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here