All pastes #373859 Raw Edit

MikeH

public text v1 · immutable
#373859 ·published 2007-02-27 01:38 UTC
rendered paste body
public class Room{
  
  private String description;
  private LockablePassageway north = null;
  private LockablePassageway south = null;
  private LockablePassageway west = null;
  private LockablePassageway east = null;
  private boolean currentRoom;
  private boolean exit;
  private Denizen creature = null;
  
  /** Constructor: creates a room with a description of the room, true/false
   * value if it is the starting room, and a true/false value if it's
   * the exit to the maze*/
  public Room(String rDescription, boolean current, boolean escape){
    description = rDescription;
    currentRoom = current;
    exit = escape;
  }
  
  /** Constructor (overloaded): creates a room with a description of the room, a
   * true/false value if it is the starting room, a true/false value if it is the
   * exit to the maze, and a Denizen (that must be passed to it) to inhabit the
   * room*/
  public Room(String rDescription, boolean current, boolean escape, Denizen inhabit){
    description = rDescription;
    currentRoom = current;
    creature = inhabit;
  }
  
  /** Query: returns true if the room is the room the explorer is in, and false
   * otherwise*/
  public boolean occupied(){
    return currentRoom;
  }
    
  /** Query: returns the description of the room */
  public String roomDescription(){
    return description;
  }
  
  /** Mutator: Takes 2 rooms and make the first one the room to the North
   * and makes the second room the room to the South.
   * <p>
   * Makes it so that roomSouth.north and roomNorth.south points to a
   * new passageway that links the 2 rooms together. */
  public static void connectNorthSouth(Room roomNorth, Room roomSouth){
    roomSouth.north = new LockablePassageway(roomSouth, roomNorth);
    roomNorth.south = roomSouth.north;
  }
  
  /** Mutator: Takes 2 rooms and make the first one the room to the West
   * and makes the second room the room to the East.
   * <p>
   * Makes it so that roomWest.east and roomEast.west points to a
   * new passageway that links the 2 rooms together. */
  public static void connectEastWest(Room roomWest, Room roomEast){
    roomEast.west = new LockablePassageway(roomEast, roomWest);
    roomWest.east = roomEast.west;
  }
  
  /** Query: reutrns the passageway to the north */
  public LockablePassageway pNorth(){
    return north;
  }
  
  /** Query: returns the passageway to the south */
  public LockablePassageway pSouth(){
    return south;
  }
  
  /*Query: returns the passageway to the east */
  public LockablePassageway pEast(){
    return east;
  }
  
  /** Query: returns the passageway to the west */
  public LockablePassageway pWest(){
    return west;
  }
  
  /** Mutator: sets the occupied flag to show the explorer is in the room */
  public void enter(){
    currentRoom = true;
  }
  
  /** Mutator: removes the occupied flag to show the explorer has left the room */
  public void exit(){
    currentRoom = false;
  }
  
  /** Query: returns the Denizen, inhabiting the room */
  public Denizen monster(){
    return creature;
  }
  
  /** Query: returns true if the room is the exit to the maze, false otherwise */
  public boolean escape(){
    return exit;
  }
}