Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

You are to write part of a computer simulation. 'Entities' inhabit a 'World'. You are given the code for the 'Entity' class definition which can

You are to write part of a computer simulation. 'Entities' inhabit a 'World'. You are given the code for the 'Entity' class definition which can be found [here]. Use this code when you implement class 'World' and the 'Driver' class. The latter will be starting execution point of the program containing the main method. You will receive credit for implementing the following capabilities in the World class. Although you aren't awarded direct credit for writing a proper Driver class it's obviously needed to run your program (but the Driver should be short - my solution was only two lines long).

Features of class World

  • Declares a 2D 5x5 "array of Entities". Each element refers to an Entity object.
  • Defines a constructor which initializes each array element to 'null'. The element at [1][1] will refer to an Entity object (the starting location of the one entity in the simulation).
  • Using nested loops the simulated world will be displayed. The appearance of an array element depends upon whether it is empty (space character) or the one element that refers to an Entity object (an X appears in the starting code for program but if the appearance is changed to another character (e.g. E then your program should display an 'E' and no an 'X' ). That is, the display of the Entity is based on the current value of the appearance attribute.
  • Each element is bound above, below, left and right by a line (see Figure 1).

    Cases where every cell is bounded except for the following:

    • Misses one of the following: top row, bottom row, left row, right row.
    • Misses two of the following: top row, bottom row, left row, right row.
    • Misses three of the following: top row, bottom row, left row, right row.
    • Misses all of the following: top row, bottom row, left row, right row.

    Cases where only the outer boundary is bounded:

    • Only the very top AND the bottom is bounded:
    • Only the very top OR the bottom is bounded:
Figure 1: The display of array elements bounded in the four directions (starting location of object at [1][1])
  • Loop the display of the world until the user enters a negative location for the row or column (next feature).
  • (1) Prompts the user for the destination (row/column) to move the entity. (2) A negative value for either coordinate will end the program (regardless of what value was entered for the other coordinate e.g., (-1/-1), (-1,0), (20,-22) will all end the program). (3) A value outside the bounds of the array will result in an appropriate error message, non-negative out-of-bound values will still allow the program to prompt again as long as the other coordinate is not negative.
Figure 2: Any out-of-bound destinations will result in an error message. Any negative coordinates will end the simulation program.
  • (The previous feature must be implemented first). Assuming that no out-of-bound coordinates have been entered, the program "moves" the entity to the specified destination. The previous cell will appear 'empty' (space) whereas the destination will take on the appearance of the entity ('X' in the starting code). Movement must work for multiple turns .

Here is the output example

 - - - - - | | | | | | - - - - - | |X| | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - Destination row (0-5): -1 Destination column (0-5): -4 Row/column: -1/-4 outside world End simulation [csc mini-a3 102 ]> java Driver - - - - - | | | | | | - - - - - | |X| | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - Destination row (0-5): -1 Destination column (0-5): 2 Row/column: -1/2 outside world End simulation [csc mini-a3 103 ]> java Driver - - - - - | | | | | | - - - - - | |X| | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - Destination row (0-5): -1 Destination column (0-5): 23 Row/column: -1/23 outside world End simulation [csc mini-a3 104 ]> java Driver - - - - - | | | | | | - - - - - | |X| | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - Destination row (0-5): 0 Destination column (0-5): 7 Row/column: 0/7 outside world - - - - - | | | | | | - - - - - | |X| | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - Destination row (0-5): 4 Destination column (0-5): 2 - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | |X| | | - - - - - Destination row (0-5): 1 Destination column (0-5): 1 - - - - - | | | | | | - - - - - | |X| | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - | | | | | | - - - - - Destination row (0-5): -1 Destination column (0-5): 0 Row/column: -1/0 outside world End simulation [csc mini-a3 105 ]> ^Dexit

Here is the entity class

public class Entity { public static final char DEFAULT = 'X'; private char appearance; public Entity() { setAppearance(DEFAULT); } public Entity(char newAppearance) { setAppearance(newAppearance); } public char getAppearance() { return(appearance); } private void setAppearance(char newAppearance) { appearance = newAppearance; } }

Write in java please need it asap kind of in a hurry

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions