/**
 * Contains static methods to make the second sample maze.
 *
 */
public class MazeGenerator2 {
  /**
   * Make a more complex 4x4 maze. Some exits are removed, and various
   * maze objects are added.
   * <pre>
   * 0 1 1 0
   * 0 0 1 1
   * 0 1 1 1
   * 1 1 1 0
   * </pre>
   *
   * @return the maze
   */
  public static Maze makeComplexMaze() {
    int[][] matrix = new int[][] {
      new int[]{0,1,1,0}, new int[]{0,0,1,1},
      new int[]{0,1,1,1}, new int[]{1,1,1,0}
    };
    Maze m = new Maze(matrix, 3, 0);
    
    m.getRoomAt(0,1).removeExit(Direction.EAST);
    m.getRoomAt(0,2).removeExit(Direction.WEST);
    m.getRoomAt(0,2).removeExit(Direction.SOUTH);
    m.getRoomAt(1,2).removeExit(Direction.NORTH);
    m.getRoomAt(2,3).removeExit(Direction.NORTH);
    m.getRoomAt(1,3).removeExit(Direction.SOUTH);
    
    m.getRoomAt(0,2).addThing(new Coin());
    m.getRoomAt(3,1).addThing(new Coin());
    m.getRoomAt(2,2).addThing(new Guard("Guard A", m.getRoomAt(2,2), Direction.NORTH, 10));
    m.getRoomAt(2,2).addThing(new Guard("Guard B", m.getRoomAt(2,2), Direction.NORTH, 10));
    m.getRoomAt(2,2).addThing(new Vending(1, 2));
    m.getRoomAt(3,2).addThing(new Coin());
    
    return m;
  }
  }