- import java.util.HashMap;
- import java.util.Set;
- import java.util.ArrayList;
- /*
- * 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 ArrayList<Item> items;
- /**
- * 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<String,Room>();
- items = new ArrayList<Item>();
- }
- /**
- * Define an exit from this room.
- */
- public void setExit(String direction, Room neighbor)
- {
- exits.put(direction, neighbor);
- }
- /**
- * Define the exits of this room. Every direction either leads
- * to another room or is null (no exit there).
- */
- /**
- * 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;
- }
- public String getExitString()
- {
- String exitString = "";
- Set<String> exitSet = exits.keySet();
- for(String s : exitSet){
- exitString = exitString + s +" ";
- }
- return exitString;
- }
- /**
- * Create a room described "description". Initially, it has
- * no exits. "description" is something like "a kitchen" or
- * "an open court yard".
- */
- /**
- * Return a long description of this room, on the form:
- *
- You are in the kitchen.
- *
- Exits: north west
- */
- public String getLongDescription()
- {
- return "You are " + description + "." + item.getItemDescription() + "\n" + getExitString();
- }
- public void setItems(Item item)
- {
- items.add(item);
- }
- }