/**
 * Use recursion to solve a maze -- based on example in 
 * Java Software Solutions by Lewis and Loftis
 *
 * Goal is to find a path through a maze of 0's and
 * 1's starting at the upper left-hand corner and ending at
 * the lower right-hand corner. 
 * A 1 indicates a clear path while a 0 indicates a 
 * blocked path.
 * If there is a path, it will be marked with P's.
 *
 * @author Suzanne Balik, 24 Feb 2004
 */
public class Maze {

  private char[][] maze;
  
  private int rows;
  
  private int cols;
  
  
  //Precondition: Maze is not "ragged", i.e. all rows
  //              have the same length
  //              Upper left-hand and bottom right-hand
  //              corners are marked with 1.
  //Postcondition: The maze is marked with P's denoting
  //               a path through the maze if there is
  //               one and a String representation of 
  //               the maze is returned
  //               Otherwise, the message No path is 
  //               returned
  public Maze(char[][] maze) {
  
   
   
   
   
   
   
   
  }
  
                 
  public String solveMaze() {
    
    //Find out if there is a path by
    //calling the "helper method"
    
    
    
    
    
    //If there is a path, return a String
    //representation of the maze
    //NOTE that the client's maze has been
    //altered!!!!!
    
    
    
    
  }
  
  private boolean solveMazeHelper(int row, int col) {
  
    boolean done = false;
    
    //Check if row,col position is within maze
    
    
    
    
    
    
       
       //Check if position is clear
       
       
       
       
       
         //Check if we're at the lower right-hand 
	 //corner. If so, we're done!!
	 
	 
	 
	 
         
	 //Else, mark this position as Visited
	 //and try to find a path from it to the 
	 //lower right-hand corner
	 else {
           
	   
	 
           //Try going right
	   
	   
	   
	 
	   //If that didn't work try going down
	   
	   
	   
	 
	   //If that didnt't work try going left  
	   
	   
	   
	 
	   //If that didn't work try going up
	   
	   
	   
	 
	   //Check if this position is on the path
	   //If so, mark it with a P 
	   
	   
	   
	 }
      }      
    }
    return done;
  }
  
  private String solvedMaze() {
  
    //Change all the 'V's back to 1's
        
	  
        
    //Create a String representation of the
    //maze
    
    
    
    
    
    
    
    
    
  }
  
  public static void main(String[] args) {
  
    char[][] maze1 = {{'1','1','1','0','1'},
                      {'1','1','1','1','1'},
		      {'0','1','0','0','1'},
		      {'1','1','1','0','1'},
		      {'0','0','1','1','1'},
		      {'1','1','0','0','1'},
		      {'1','1','0','0','1'}};
	
    char[][] maze2 = {{'1','1','1','0','1'},
                      {'1','1','0','1','1'},
		      {'0','1','0','0','1'},
		      {'1','0','1','0','1'},
		      {'0','0','0','1','1'},
		      {'1','1','0','0','1'},
		      {'1','1','0','0','1'}};
		      
		      
    //Try to solve Maze 1
    
        
  
		      
    //Try to solve Maze 2
    
    
    
    
  }
}