Problem related to java programming

Assignment Help JAVA Programming
Reference no: EM13724175

Project Overview
For this assignment you will be provided with incomplete sample starter code that you can modify and build upon. Your task will be to carry out the design, analysis, coding and testing to add several additional features to this sample code. You are expected to fully comment the provided code as well as your own code.

This project will implement a simple menu-driven text adventure. Text adventure games were very popular in the early days of computer gaming, as they could run even on low-end computer systems which could not support advanced graphics. The player controlled a character within an environment such as a fantasy castle or a spaceship. The environment was made up of a series of interconnected locations, which were described to the player by written descriptions. By entering short text commands such as "go north" or "get key" the player could explore these locations, pick up and use objects within the environment, fight enemies and so on. Generally the player had to solve a series of puzzles to enable them to achieve a goal in the game such as reaching a goal location where treasure was stored. Many of the classic text adventures are now freely available online, so if you are interested you may want to try some of them:
• Colossal Cave (the first text adventure)
• The Hobbit (made in Melbourne!)
• The Hitchhiker's Guide to the Galaxy
Developing a complete text adventure is too challenging at this stage of the course, so we will make a number of simplifications:
• To avoid having to process commands made up of one or more words, all user input will be through a numeric menu.
• Interaction with objects in the game will be very limited.
The provided partial solution source code implements some fundamental aspects of the text adventure:
• The use of arrays (both 1D and 2D) to store information about the map which defines the game world, the descriptions of locations, and the description and location of game objects
• A simple numeric menu which the player uses to enter commands
• The ability for the player to move between locations in the game world by moving in the four cardinal compass directions (north, east, south and west)

Your task will be to first answer some questions testing your comprehension of the partial solution, and then to extend this partial solution to provide additional features:
1. Answer the questions listed below under Part A - save your answers into a Word document for submission along with remainder of your assignment.
2. Design your own unique game world, which must exhibit the following characteristics:
a. It should consist of between 10 and 20 interconnected locations (please don't exceed this limit as it will slow down the marking process)
b. All eight possible directions of movement (N, S, E, W, NE, SE, SW, NW) must be used at least once in the game map.
c. The world should contain 10 objects. At least one location must contain no objects, and at least one location must contain multiple objects.
d. Every location and object must have its own unique description.
e. There must be a specified ‘goal' location which the player is aiming to reach - this will be used later within Stage 6 of the project.
Your design should be clearly documented in the form of a world map and table of descriptions similar to the example provided on moodle.
3. Extend the menu and related code so that the player can also move in the ordinal directions (north-east, south-east, south-west, north-west)
4. Modify the program code and data so as to implement the game world designed in Stage 2.
5. Add a ‘quit' option to the menu, and modify the loop in the main() method so that it exits if the user enters this command.
6. Further modify the loop so that it exits and displays a suitable congratulatory message if the player reaches a specific ‘goal' location within the game-world.
7. Modify the room description method so that the player automatically picks up any objects in their current location. If the room description is redisplayed, those objects should no longer be listed as being in that location (hint: use a special value such as -1 to indicate that an object is in the player's possession).
8. Add an additional ‘inventory' command to the menu and implement a method which is called when this command is entered, which will list all of the objects currently in the player's possession.
9. Now that no further commands will be added to the menu, modify the menu code to ensure that a valid selection has been made by the player. If not, display an error message and prompt them to enter a new value. Repeat this until valid input is obtained.
10. This is the most advanced aspect of the project - do not attempt this unless you have all the other requirements working. Modify the program code so that the goal location cannot be entered unless the player is carrying a particular object (e.g. a key). If the player tries to enter the room without this object then an appropriate message should be displayed. For full marks for this section, your solution should be easily applicable to other game worlds (for example worlds with multiple locked doors).

Resources Provided
The following files/links are available on Moodle:
• An electronic copy of this assignment specification sheet
• The General Guide for the Presentation of Academic Work
• A sample incomplete program to get you started (TextAdventure.java)
• A video of a complete version of the project
• A sample design document for the game world used in the video.
NOTE: If you use any resources apart from the course material to complete your assignment you MUST provide an in-text citation within your documentation and/or code, as well as providing a list of references in APA formatting. This includes the use of any websites, online forums, books or text books. If you are unsure of how to do this please ask for help.
Part A - Code Comprehension
Sample code has been provided in Moodle. Use the sample code provided to answer the following questions. Save your answers in a Word or pdf file, and include that file in your assignment submission:
Question 1: Explain why NO_EXIT has been declared and used in defining the contents of the map array, rather than just directly using the value 99999 in the map array definition.
Question 2: What is the value stored in map[2][1]? What is the interpretation of this value in terms of the structure of the game world?
Question 3: Explain what change would need to be made to the code in order for the potato object to be in the log-cabin rather than the clearing.
Question 4: Describe the change (if any) in the program behaviour if the describeLocation() method was changed to the following code:
private void describeLocation()
{
System.out.println();
System.out.println("You are in " + description[playerLocation]);
System.out.println("In this location there is: ");
for (int i=0; i<objectLocation.length; i++)
{
if (objectLocation[i]==playerLocation)
{
System.out.println("\t" + objectName[i]);
numObjects++;
}
else
{
System.out.println("\tnothing");
}
}
}
Question 5: The move method contains the following statement:
if (nextLocation==NO_EXIT)
Explain why the == operator is used here rather than the = operator.

Question 6: What is the purpose of the do..while loop in the startGame method?
Question 7: Within the startGame method, the following call is made to the move method:
move(selection-1);
Explain why the actual parameter is set to selection-1 rather than selection.

Part B - Design
Question: Design and document a game world which meets all of the requirements specified under Stage 2 of the Project Specification. Include your design within the file produced during Part A.

Part C - Program Analysis, Implementation and Development
It is suggested that you design, implement and test each of Stages 3 to 10 in order - completing each section completely and correctly before proceeding to the next.
For each stage you should first design a solution in the form of pseudo-code to carry out the required task. Include this pseudo-code as part of your project documentation, clearly indicating which Stage it belongs to. Once you have completed your pseudo-code, perform a desk check of your logic. If you find any problems with your pseudo-code you should redesign and retest.
Once the design is correct, implement the program in Java. You could be using the sample java code provided as a starting point and your first task would be to appropriately comment the code provided. Once you have finished this task, then you can update the code so that it implements the algorithm you have designed.
Your code should use appropriate programming standards and should be well documented/commented. You are permitted to discuss the sample program with your peers in order to understand it. However, you must ensure that you complete this section individually. It is expected that no two students will have the same program.
NOTE: Code that does not successfully compile will not be marked. In such cases, only the specification, design and question sections of the assignment will be awarded marks. If you are unable to get your code to compile, please state this clearly in your submission and comment out the offending code prior to handing in your work. Even if your code compiles but has warnings, marks will be deducted. You are strongly urged to keep backup files as you work on the project so that you can revert to an earlier version if you break an aspect of the program while attempting to implement one of the later requirements.

Part D - Testing
You should be testing your program as each stage is completed, and again once the program is complete. You should document the testing data, process and results (e.g. in the form of a table) and include this within your project documentation. Your mark for this section will reflect the thoroughness of your testing and the quality of your documentation.

The following criteria will be used when marking your assignment:
• successful completion of the required tasks
• quality of code that adheres to the programming standards for the course including:
• comments and documentation
• code layout
• meaningful variable names (it is expected that you will change the names of variables in the sample code provided and alter the size of the array to suit your circumstances)
• check that data entered is valid
You are required to provide documentation, contained in an appropriate file, which includes:
• a front page - indicating your name, a statement of what has been completed and acknowledgement of the names of all people (including other students and people outside of the university) who have assisted you and details on what parts of the assignment that they have assisted you with
• a table of contents and page numbers
• answers to the questions from Part A
• the design of your game world
• the pseudocode for each Stage of the project
• details of test data and evidence that the testing was conducted
• list of references used (APA style); please specify if none have been used.

Reference no: EM13724175

Questions Cloud

Describe the issues on both sides that led to the impasse : Use the Internet resources to find situations where company management and the union reached an impasse at some point during their negotiation process, Describe the issues on both sides that led to the impasse
How might you react to the first signs of the plague : Imagine yourself as a peasant living during the time of the plague. How might you react to the first signs of the plague? How might you react to some of the atrocities that were committed because of the fear of the plague?
Firm is considering investing in a project with cash flows : Suppose your firm is considering investing in a project with the cash flows shown below, that the required rate of return on projects of this risk class is 8 percent, and that the maximum allowable payback and discounted payback statistics for the pr..
Compute the irr for project : a. If the company requires a 10 percent return on its investments, should it accept this project? Why? b. Compute the IRR for this project. How many IRRs are there? If you apply the IRR decision rule, should you accept the project or not? What's ..
Problem related to java programming : Question 1: Explain why NO_EXIT has been declared and used in defining the contents of the map array, rather than just directly using the value 99999 in the map array definition. Question 2: What is the value stored in map[2][1]? What is the inter..
Compute the payback statistic : Compute the payback statistic for Project B and decide whether the firm should accept or reject the project with the cash flows shown below if the appropriate cost of capital is 12 percent and the maximum allowable payback is three years.
Case devereaux-dering group : List and discuss five (5) factors you think are affecting this team's cohesiveness. If you were the team leader, what could you do to bring Fitzgerald into the team more and foster better relationships among the team members?
What is the boy code : Counseling young boys requires sensitivity to society's "boy code" and may require special strategies for putting boys at ease in the counseling context. What is the boy code? What strategies might be especially helpful for overcoming this code
Contrast opposing views of federalists and anti-federalists : Compare and contrast the opposing views of the Federalists and the Anti-Federalists. Introductory paragraph(s) that summarize the comparison and explain why it is important to understand the two opposing views.

Reviews

Write a Review

 

JAVA Programming Questions & Answers

  Create the java code for a generic class

Create the Java code for a generic class. The class should contain at least one private data member of a generic type, a constructor which initializes the private data member to the value of a passed in argument, and a getter and setter for the ge..

  Write specifications for method which advances date by one

Write specifications for the method which advances any given date by one day. Comprise a statement of purpose, pre- and post-conditions, and description of parameters.

  Write a method called range that returns the range of value

Write a method called 'range' that returns the range of values in an array of integers. The range is defined as 1 more than the difference between the maximum and minimum values in the array. For example, if an array called list contains the value..

  Using a linked implementation of graph write a method

Write a method that takes two nodes as input and returns true if joining an edge between these two nodes, forms a duplicate path to one of the input nodes within the graph.

  Kinds of functionality in the graphical sense

You have to be familiar with the "Fun" part of Java utilizing the GUI. - Why do you think Java and Java's GUI are so popular?

  Create an array that stores in integers from the keyboard

create an array that stores in integers from the keyboard and then I can scan that array to check numbers in order, if the number I check is greater than the previous then I will set the next number in the array to the higher value.

  One-dimensional array to solve the

In C#, Use a one-dimensional array to solve the following problem. A company pays its salespeople on a commission basis. The salespeople each receive $200 per week plus 9 percent of their gross sales for that week. For example, a salesperson who gros..

  Product maintenance with a database

Use a class named ProductDB that's in the music.data package to add, update, and delete the products in the Product Maintenance application.

  Java program to create a tree

Java program to create a tree, generate class - BottomUpTwoThreeFourTree, BottomUpTwoThreeFourTree,

  Write a program that assigns seats on an airplane

Prepare a program that teaches arithmetic to a young child. The program tests subtraction and addition. Write a program that assigns seats on an airplane.

  Describe how an eavesdropped can gain access

Describe how an eavesdropped can gain access to the remote server with a relatively modest number of guesses ( Hint:  The eavesdropped starts guessing after the original user has typed all but one character of the password.

  Demonstrate your knowledge in a pragmatic way

Summarize everything that we have addressed in the XML Applications course, and provide a mechanism to demonstrate your knowledge in a pragmatic way.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd