Escaping a Maze. You are currently located inside a maze. The walls of the maze are indicated by asterisks (*).

.

Use the following recursive approach to check whether you can escape from the maze: If you are at an exit, return true. Recursively check whether you can escape from one of the empty neighboring locations without visiting the current location. This method merely tests whether there is a path out of the maze. Extra credit if you can print out a path that leads to an exit.

Complete the following files:

Maze.java

MazeTester2.java

MazeTester3.java

MazeTester4.java

Use the following file:

MazeTester.java

public class MazeTester
{
   public static void main(String args[])
   {
      char[][] m = {
         {'*', ' ', '*', '*', '*', '*', '*', '*', '*'}, 
         {'*', ' ', ' ', ' ', ' ', ' ', '*', ' ', '*'}, 
         {'*', ' ', '*', '*', '*', '*', '*', ' ', '*'}, 
         {'*', ' ', '*', ' ', '*', ' ', ' ', ' ', '*'}, 
         {'*', ' ', '*', ' ', '*', '*', '*', ' ', '*'}, 
         {'*', ' ', ' ', ' ', '*', ' ', ' ', ' ', '*'}, 
         {'*', '*', '*', ' ', '*', ' ', '*', '*', '*'}, 
         {'*', ' ', ' ', '*', ' ', ' ', '*', ' ', '*'}, 
         {'*', '*', '*', '*', '*', '*', '*', ' ', '*'}};
         
      Maze maze = new Maze(m);
      System.out.println(maze.escape(4, 3));
      System.out.println("Expected: true");
      System.out.println(maze.escape(5, 5));
      System.out.println("Expected: false");
   }
}