public class MazeDriver {
public static void main(String args[])
{
int input; //Number of maze
Maze m = null;
Scanner scanner = new Scanner(System.in);
char[][] m1 = {{'#','#','#','#','#','#','#','#','#','#','#','#'},
{'#','.','.','.','#','.','.','.','.','.','.','#'},
{'.','.','#','.','#','.','#','#','#','#','.','#'},
{'#','#','#','.','#','.','.','.','.','#','.','#'},
{'#','.','.','.','.','#','#','#','.','#','.','.'},
{'#','#','#','#','.','#','.','#','.','#','.','#'},
{'#','.','.','#','.','#','.','#','.','#','.','#'},
{'#','#','.','#','.','#','.','#','.','#','.','#'},
{'#','.','.','.','.','.','.','.','.','#','.','#'},
{'#','#','#','#','#','#','.','#','#','#','.','#'},
{'#','.','.','.','.','.','.','#','.','.','.','#'},
{'#','#','#','#','#','#','#','#','#','#','#','#'}};
char[][] m2 = {{'#','#','#','#','#','#','#','#','#','#','#','#'},
{'#','.','.','.','#','.','.','.','#','#','.','.'},
{'#','.','#','.','.','.','#','.','.','.','.','#'},
{'#','.','#','#','#','#','.','#','.','#','.','#'},
{'#','.','.','.','#','#','.','.','.','.','.','#'},
{'#','#','#','.','#','#','#','#','.','#','.','#'},
{'.','.','.','.','.','.','.','.','.','.','#','#'},
{'#','#','#','#','#','#','#','#','#','#','#','#'}};
char[][] m3 = {{'#','#','#','#','#','#','#','#','#'},
{'#','.','#','.','#','.','.','.','#'},
{'#','.','.','.','#','.','#','#','#'},
{'#','#','#','.','#','.','#','.','.'},
{'.','.','.','.','.','.','#','.','#'},
{'#','#','.','#','.','#','#','.','#'},
{'#','.','.','#','.','#','.','.','#'},
{'#','#','.','#','.','#','.','.','#'},
{'#','#','#','#','#','#','#','#','#'}};
do
{
System.out.println("Maze Solver");
System.out.println("\n1. Maze 1");
System.out.println("2. Maze 2");
System.out.println("3. Maze 3");
System.out.println("4. Random Maze");
System.out.print("\nEnter Number: ");
input = scanner.nextInt();
if(input < 1 || input > 4)
{
System.out.println("Invalid Number!");
}
}while(input < 1 || input > 4);
switch(input)
{
case 1:
m = new Maze(m1, 2, 4);
break;
case 2:
m = new Maze(m2, 6, 1);
break;
case 3:
m = new Maze(m3, 4 , 3);
break;
case 4:
m = new Maze();
break;
}
System.out.print(m.toString());
MazeSolver ms = new MazeSolver(m, m.start, m.finish);
ms.solve(0, ms.s);
}
}