public MazeBuilder(int h, int w){
	_r=h;
	_c=w;
	_mazeArray = new int[h][w];
	_maze = new String[h+4][w+2];
	_case = new int[h+2][w+2];
	for (int r = 0;r<_r;r++){
	    for (int c=0;c<_c;c++){
		_mazeArray[r][c] = -1;
	    }
	}
	for (int r = 0;r<_r+4;r++){
	    for (int c=0;c<_c+2;c++){
		_maze[r][c] = "  ";
	    }
	}
	for (int r = 0;r<_r+2;r++){
	    for (int c=0;c<_c+2;c++){
		_case[r][c] = -1;
	    }
	}
	makeExitPath(0,0,0);//this will start the recursion and keep track of the path number - the path number will be used to establish the most optimal end.
	placeInCase();//places the mazw in a case
	openingAndEnding();//creates an opening and then establishes a close in th most optimal spot.
	transform(); //transforms the maze into its final product
    }