- import java.util.HashMap;
- /*
- * Class Room - a room in an adventure game.
- *
- * This class is part of the "World of Zuul" application.
- * "World of Zuul" is a very simple, text based adventure game.
- *
- * A "Room" represents one location in the scenery of the game. It is
- * connected to other rooms via exits. The exits are labelled north,
- * east, south, west. For each direction, the room stores a reference
- * to the neighboring room, or null if there is no exit in that direction.
- *
- * @author Michael Kolling and David J. Barnes
- * @version 1.0 (February 2002)
- */
- public class Room
- {
- private String description;
- private HashMap<String, Room> exits;
- /*private String description;
- private Room northExit;
- private Room southExit;
- private Room eastExit;
- private Room westExit;
- */
- /**
- * Create a room described "description". Initially, it has
- * no exits. "description" is something like "a kitchen" or
- * "an open court yard".
- */
- public Room(String description)
- {
- this.description = description;
- exits = new HashMap();
- }
- /**
- * Define the exits of this room. Every direction either leads
- * to another room or is null (no exit there).
- */
- public void setExits(Room north, Room east, Room south,
- Room west)
- {
- if(north != null)
- exits.put("north", north);
- if(east != null)
- exits.put("east", east);
- if(south != null)
- exits.put("south", south);
- if(west != null)
- exits.put("west", west);
- }
- /**
- * Return the room that is reached if we go from this room in
- * direction "direction". If there is no room in that
- * direction, return null.
- */
- public Room getExit(String direction)
- {
- return exits.get(direction);
- }
- /**
- * Return the description of the room (the one that was defined
- * in the constructor).
- */
- public String getDescription()
- {
- return description;
- }
- /**
- * Create a room described "description". Initially, it has
- * no exits. "description" is something like "a kitchen" or
- * "an open court yard".
- */
- /* public Room(String description)
- {
- this.description = description;
- }*/
- /**
- * Define the exits of this room. Every direction either leads
- * to another room or is null (no exit there).
- */
- /* public void setExits(Room north, Room east, Room south, Room west)
- {
- if(north != null)
- northExit = north;
- if(east != null)
- eastExit = east;
- if(south != null)
- southExit = south;
- if(west != null)
- westExit = west;
- }*/
- /**
- * Return the description of the room (the one that was defined
- * in the constructor).
- */
- /*public String getDescription()
- {
- return description;
- }
- public Room getExit(String direction)
- {
- if(direction.equals("north"))
- return northExit;
- if(direction.equals("east"))
- return eastExit;
- if(direction.equals("south"))
- return southExit;
- if(direction.equals("west"))
- return westExit;
- return null;
- }*/
- public String getExitString(Room currentRoom)
- {
- String exitString = "";
- if(exits.get(direction)!= null)
- {
- exitString = "north ";
- }
- if(eastExit != null)
- {
- exitString = exitString + "east ";
- }
- if(southExit != null)
- {
- exitString = exitString + "south ";
- }
- if(westExit != null)
- {
- exitString = exitString + "west ";
- }
- return exitString;
- }
- }