Java Program

profilezywangdylan
Lab-Assignment11Files.zip

Lab-Assignment11-Graph.pdf

CSC220 Lab 11 Path Finding (due Nov. 28th)

This week’s assignment has double the points The goal of this week’s assignment is:

1. Practice using graphs

2. Practice using queues

3. Practice using BFS path finding

4. Practice object oriented programming

5. and more…

Things you must do:

1. There are many details in this assignment. Make sure you read the whole thing carefully

before writing any code and closely follow this instruction.

2. You must complete your assignment individually.

3. Always remember Java is case sensitive.

4. Your file names, class names, package name, and method signatures must match exactly

as they are specified here.

Things you must not do:

1. You must not change the file names, class names, package names.

2. You must not change the signature of any method we have specified (name,

parameters, …).

3. You must not create any different class (other than the ones instructed).

Important Note: This project requires more time to finish and counts twice as much as any

other assignment you have done so far. So start early and try to finish way ahead of the

deadline to give yourself enough time for debugging and testing.

Part 0

• You are going to create a new project for this lab. You learned how to create a project in

Eclipse before. Create a new Java project and call it Lab11 (with no space and no other

name – notice the capital ‘L’)

• Create a package inside your project and call it lab11 (no space and no other name – all

lowercase).

• Create another class (or Java file) in this package and call it: PathFinder.java (nothing

else). You will be working on developing methods for this class.

• Create another class (or Java file) in this package and call it: Node.java (nothing else).

This class will represent a node of the graph.

• You are fully in charge of implementing these two classes based on the description

below.

Part 1 – The problem description

DO NOT MOVE TO NEXT STEPS BEFORE READING THIS PART CAREFULLY

For this lab, you are asked to create a tool to help Pacman solve mazes. You must create a

program that can find the shortest path from one location to another in any enclosed field of

obstacles. You are given the field as input, represented as a simple text file. The start-point and

end point are indicated in this text file, as well as the layout of the field (the location of the

walls and obstacles). You must produce a similar text file, but with the shortest path from the

start-point to the end-point added to the field. If there is no path at all, the path indicators will

simply not exist in the output. To solve this problem, you must represent the maze as a graph,

and perform a breadth-first search from Pacman's starting location. You will be given some

hints and instruction during Thursday’s lecture to help you solve this problem. The graph in this

case is a simple 2D array of nodes.

PathFinder class:

The PathFinder class is required to have the following function with the following signature and

nothing else:

public static void solveMaze(String inputFile, String outputFile)

Copy and paste the signature. If you change the signature you will be penalized up to 20%.

This method will read a maze from a file with the given input name, and output the solved

maze to a file with the given output name. You must use the filenames exactly as is (do not

change the directory or path). We will provide the full path to files we want to read/write in our

tests. See required specifications below. This method must use a graph and graph pathfinding

to solve the problem. No other solutions are allowed! Your program may contain other

methods necessary for your solution. You will need a queue for breadth-first search, you don’t

have to implement a queue, simply use the one Java provides. You also need various methods

from java.io for reading/writing files as well. Which ones in specific? That is left for you to figure

out. There are some tips below.

Input: The input files are in the following form:

The first line contains two numbers, separated by a space. The first number is the height of the

field, and the second is the width. The rest of the lines contain the layout of the field. The

characters have the following meaning:

X - A single wall segment. Pacman cannot travel on to or through walls.

S - The starting point of the path that we are trying to find (where Pacman starts). This is an

open space (no wall).

G - The ending point of the path we are trying to find (where Pacman wants to be). This is an

open space (no wall).

(space) - An open space on the field. Pacman is free to travel in any open space, assuming he

can get there.

Pacman is free to move from his current location to any adjacent open space. This includes the

space directly above, below, left and right of where he is. It does not include diagonally

adjacent spaces. If any of the adjacent spaces are a wall, Pacman cannot travel in that direction.

The path that your maze solver finds MUST be a connected path (it can't skip spaces and have

Pacman "jumping" over walls or empty spaces).

You can assume that all input mazes will be rectangular. All of the border positions around the

perimeter of the field will be walls (the field is fully enclosed).

An example of reading numbers (height and width) from a file, assuming you're using

a BufferedReader named input to read the file:

String[] dimensions = input.readLine().split(" ");

height = Integer.parseInt(dimensions[0]);

width = Integer.parseInt(dimensions[1]);

Output: The output of your program is a similar file. Output the height and width at the top, just like the

input. The output should also have the same layout of the walls and the same start and end

points. It will, however, replace some of the open spaces (space characters) with dot characters

('.').

The spaces that you replace with dots are the spaces on the shortest path from the start point

to the goal point. For example, given the above input, the following output may be produced:

Some of the empty spaces are now replaced with dots, connecting a path from 'S' to 'G'. There

is a single newline character after the last 'X' in the output.

There are multiple shortest path solutions to the above example. Any connected path from 'S'

to 'G' with length of 4 is a correct solution. For example, another acceptable solution to the

above maze is:

If there is no path from 'S' to 'G', simply do not place any dots in the output file; print the

original maze. We have provided a zip file containing various mazes and their solutions to try

out your code. You have learned how to add a text file to your project in assignment 4. If you

are in doubt consult the instruction for assignment4 in Blackboard (i.e., assignment04-

generics.pdf). If you add the files differently into your project, the TA will have difficulty running

your code and you will lose points.

Note that there might be cases where your code finds a different way. The important thing here

is that the length of the path your code finds is exactly the same as the length of the solution

path. If you have a longer path, something is wrong in your code. You need to go back and

debug it.

An example of creating a file and writing to it in Java is below (where outputFile is a String). It

will create the specified file if it does not exist. Use the exact String outputFile passed in to

your solveMaze method (do not modify the path of the file).

try(PrintWriter output = new PrintWriter(new FileWriter(outputFile))) { output.println(height + " " + width); //write more data here }

Rules:

• The path cannot go through or on top of walls.

• The path must be connected (no skips or jumps).

• Diagonally-adjacent spaces are not connected.

o Only up, left, down, right

• If no path exists, the output file will have no dots.

• If multiple shortest paths exist, any of them are valid.

• Must produce output in exact format specified (for grading purposes). You will lose up

to 10% if the format of your output file is wrong eventhough your solution is correct.

• Your program must run in 10 seconds or less on all mazes we test. This includes file

input, graph construction, pathfinding, and file output. The biggest test maze is 100x100

(see randomMaze in the mazes provided).

• Other than the required PathFinder class with method solveMaze (see above) and above

rules, the design of your program is completely up to you.

Part 2 – Start your implementation

For this lab you are encouraged to take some time to think about how you are going to

accomplish this task (given the rules, etc). What methods and fields each class should have?

DO NOT open Eclipse and start coding aimlessly! IT WON’T WORK!

Try to break down this project into smaller and testable components. Implement each

component, test it, and then go to the next component. Before continue reading think about

how you can do this.

After you are done with that, discuss it with the lab instructor and then start implementing your

design. Remember that your design might not work the first time and you might need to

change it.

For instance, the first task is to be able to read in the maze file and store it into a 2D array. This

is absolutely required and is a smaller component of the project that can be tested

independently. Start working on this component in this lab. How would you test it? You can

simply print your maze to make sure it looks correct.

The next task you might want to accomplish is to write a function that accepts a maze and write

it into a file. This is a gain a required and a smaller component of this project that can be tested.

This can also be used to check the structure of your maze and make sure you are not going to

lose 10% for having an incorrect output file. After you are successfully reading in the maze file

try to write it out.

The rest if left for you to figure out. Good luck! J

Make sure to grab your code before your leave the lab, you will develop more functionality for the classes for your assignment. You are required to submit the code you wrote during the

lab as part of your assignment.

For all your assignments, please start early and seek help early (either from the instructor or the TAs).

__MACOSX/._Lab-Assignment11-Graph.pdf

mazes/.DS_Store

__MACOSX/mazes/._.DS_Store

mazes/bigMaze.txt

37 37 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X X X X X X X XXXXXXX X XXX X XXX XXX XXXXXXX X X X X X X X X X X XXXXX XXXXX XXX X X X XXX XXXXX X XXX X X X X X X X X X X X X X X X XXX X X X XXX XXXXX XXX X XXX XXX X X X X X X X X X X XXX XXXXXXXXX XXXXXXX XXX XXX X X X X X X X X X X X X X XXXXX X XXX X X XXX X XXX XXX X X X X X X X X X X X X X X X X X X X XXXXXXX X XXXXXXXXX XXX X XXX X X X X X X X X X X X XXX XXX X XXXXX XXXXX XXX XXX XXXXX X X X X X X X X X X X X X X X X X X XXX XXX XXX XXX X X X X X X X X X X X X X X X XXX XXXXXXX X X XXXXX XXX X XXX XXXXX X X X X X X X X X X XXXXX X X XXXXXXXXX XXXXXXXXXXX X XXX X X X X X X X X X X XXX XXXXX XXXXXXXXX XXXXX X X XXX X X X X X X X X X X X XXXXX XXX X X X X XXXXXXXXXXXXX X X X X X X X X X X X X X X XXX XXX X X X XXXXXXXXX XXX X X X X X X X X X X X X X X X X X XXX XXX XXXXX XXX X X XXXXX X XXXXX X X X X X X X X X XXX X XXXXX XXXXX XXX XXX X XXX X XXX X X X X X X X X X X X X X X X X X XXX X X X X XXXXXXXXX X X X X X X X X X X X X X X X X XXX XXX XXXXXXX XXX XXX XXX X XGX X X X X X X X SX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._bigMaze.txt

mazes/bigMazeSol.txt

37 37 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X X ....... X X X X X XXXXXXX X XXX.X XXX.XXX XXXXXXX X X X X .....X X . X X X X XXXXX XXXXX.XXX X X X.XXX XXXXX X XXX X X X X X. X X X X. X X X X X X XXX X X X.XXX XXXXX.XXX X XXX XXX X X X ...X X .X X X X...X XXX XXXXXXXXX.XXXXXXX.XXX XXX X X.X.X X ...........X.......X X X.....X.X X X.XXXXX X XXX.X X XXX X XXX.XXX X.X X X.X X X X.X X X X.X X X.X X X.X XXXXXXX X.XXXXXXXXX XXX.X XXX.X X X.X X X .X X X. X .X XXX.XXX X XXXXX.XXXXX XXX XXX.XXXXX.X X . X X X ...X X X X...X X X.X X X.X X X XXX.XXX XXX XXX X.X X X X.X X X.X X X .............X.X X.....X XXX.XXXXXXX X X XXXXX XXX.X.XXX.XXXXX X ... X X X X X X... X.X X XXXXX.X X XXXXXXXXX XXXXXXXXXXX.X XXX X X.X X X X...X.X X X XXX.XXXXX XXXXXXXXX XXXXX.X.X.XXX X X X...X X .......X.....X... X X X.X XXXXX XXX.X X X.X.XXXXXXXXXXXXX X X.X X X.X X X... X X X X X X.XXX XXX X X.X XXXXXXXXX XXX X X X X X...X X X X.X X X X X X X X XXX.XXX XXXXX.XXX X X XXXXX X XXXXX X ... X X ...X X X X X X XXX.X XXXXX XXXXX.XXX XXX X XXX X XXX X X.X X X X X X... X X X X...X X X X X.XXX X X X X.XXXXXXXXX X X.X.X X X X...X X X ...............X.....X X.X X X XXX XXX XXXXXXX XXX XXX XXX.X XGX X X X X X X X SX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._bigMazeSol.txt

mazes/classic.txt

11 20 XXXXXXXXXXXXXXXXXXXX X X X X X XX X XXXXXX X XX X X X X X X X XX XX XX XX X X X XG X X X X XX XXXXXX XX X X X X X X X XX X XXXXXX X XX X X X S X X XXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._classic.txt

mazes/classicSol.txt

11 20 XXXXXXXXXXXXXXXXXXXX X X X X X XX X XXXXXX X XX X X X .... X X X X XX.XX. XX XX X X X .XG. X X X X XX.XXXXXX XX X X X X . X X X XX X.XXXXXX X XX X X X...S X X XXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._classicSol.txt

mazes/demoMaze.txt

10 19 XXXXXXXXXXXXXXXXXXX X S X X X X X XX X X X X X XXX X X X G XX X X X X X XXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._demoMaze.txt

mazes/demoMazeSol.txt

10 19 XXXXXXXXXXXXXXXXXXX X S. X X . X X . X XX X . X X X X XXX . X X X G....XX. X X .... X X X XXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._demoMazeSol.txt

mazes/mediumMaze.txt

18 36 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X SX X XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X X XX X X XXXXXXX XX X X XX X X X X XXXX XXXXXXXXX XX XXXXX X XX X X X X XX XX X X XX X X X X X XXXX XXX XXXXXX X X X X X X X XX XXXXXXXX X X XX X X XXXXXXXX XX XX XXXXX X XX X XX XXXXXXXXX XX X X XXXXXX XXXXXXX XX XXXXXX X XXXXXX X XXXX XX X X X XXXXXX XXXXX X XX XX XXXXX X XXXXXX X XXXXX XX X X XXXXXX XXXXXXXXXXX XX XX X XXXXXXXXXX XXXXXX X XG XXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._mediumMaze.txt

mazes/mediumMazeSol.txt

18 36 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X .........SX X XXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXX X X XX X X XXXXXXX...XX X X XX X X X X XXXX XXXXXXXXX.XX XXXXX X XX X X X X .....XX.XX X X XX X X X X X XXXX .XXX....XXXXXX X X X X X X X XX.XXXXXXXX X X XX X X XXXXXXXX XX........XX XXXXX X XX X XX XXXXXXXXX.XX X X XXXXXX XXXXXXX XX.XXXXXX X XXXXXX X XXXX XX.X X X XXXXXX XXXXX X XX.XX XXXXX X XXXXXX X XXXXX.XX X X XXXXXX XXXXXXXXXXX.XX XX X XXXXXXXXXX..................XXXXXX X XG.........XXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._mediumMazeSol.txt

mazes/randomMaze.txt

100 100 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XSX X X X XX X X XX XX X X X X X X XX XX XX XX X X XXX X X X X XXX X X X X XX XX XX X X X XX X XX XX X X XXX X X XX X XX X XX XX XX X X X XXX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X XXX X X XX X X X X X X X X X X X X X X XX X X XXX X X X X X X X X XX X XX XXXX X X XX X X X X X X X X XX X X X XXX XX X X X X X X X X X X XX X XX X X X X X X X X XX X X X X X XX X X X X X X XX X X X X XX XX X X X XX XXX X X XXX X X X X X X X X XX X XXX X X X XX X X X X XXXX X X X X X X XX X X X X X X X X X X XX X XXX XX X X X XX XX X X X XX X X X X X X XX XX XXX X X XX X X XX X X X XX XX X XXX X X X X X XX XX X X XX X XX X X X X X X X X XX XX X X X X X X X X XX XX X X X XX X X XXX XXXX X XX X X XX XX X XX X X X XX X X X XX X X XX X X X XX X X X X X X X X X X X XX X X X X X XXX XX X XX XX X X X X X X X XX X X XX X X X X X XX XX X X X X X X X X X XXXX X X XX X XXX X XX X X X X X XXX X X X X X X X X X X XX XXXXX XXX X X X X X XXX XXXX X X X XX X X X XXXX XX X X XXX X X XX X X XX XX X X X XX X X X X XX X X X X X X X XX XXX X XX X X X X X XXX XX X X X X X X XX X X XXXX X XX X X X XX X XXX X X X X X X X X XX X X XX X X XX X X X X X X XX XXX XXX X X X XX X X X XX X X X X X X X X XX XX XX X X X X X XX X XX X X X X XX X XX X X X X XX X X X X X X X X X XX X XX X X XX X XX XX XX X X X X X X XX X X X XX X X X X XXXXX X X X XXX XX X X XXX X X X X XXXX XX XXX X X X XX X XX X XXX X X XX X X X X X X X X X XXXX X X X XX XX X X XX X X XX X XX X X X X X X X X X X XX X X X X X X X X X X X X X X X XX X X X X X X X X X X X X X X X X XX X X X X XXXX X XX XX X X X X X X X X X X X X X XX X X XX X X X XXX X X X X X X X XXX X X X X XX X X X XX XX X X X X X X X XX X X XX XXX X XX X XX X X X X X XX X XX X X X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X X X X X X XX XX X X XX X XX XX XX X XX X X X X X X X XX X XX X XXX XX X X X XX X X XX X XX X X X XX X X XX X X XXX XXX X X X X X XX XX X X X X X X X X X X XXX X X X X X X X X X X X X XXXX X X X XX X X X XX X X XX X X X X X XX XX X X X X X XXX XX X XX X X X X X X X XX X X XX X X XX X X XX XX XX XX X X X XX X X X X X X XX X XXX X X X X X X XX X X X X X XX X X X X XXX X X X X X X X X X XX XX X X XXX XX X X X X XX X X XX XX X X X X X X XX X XX XX XX XX X X XX X X X XX X XXX X X XX X X XX X XX X X X X X X XX X X X X X X X X X XXX X X X XX X X X X X X X X X X X X X X X XX XX X XX XX X XX X X X X X XX X XX X X X X X X X X XX X XX XXX X X XX XXX X X X X XX X X X X X X X X XXX X XX X X X X X XX X X X XXX X X X X X XX X XX X XX X X XX X X X XX XX XX X XX X X X XX X X XXX XXXX X X XX XX X X XXX XX X X X XX X X XX X X X X X X XXXX X X X X X X X X X XX X X XXX XX XX X X X X X X X X X X X X XX X X X X X X X X X X XX X X X X X X XXX XX X XX X X X X X X X X X XXX X X X X X X X XX XX X X X X X XX X X XXX X X X XX XX X X X XX X X X XX X XX XX X XX X XX X XX X X X X XXXX X X XX X X X X X X X X X X XX XXX XX XXX XX X X X X X X X X X X XX XXXXX X X XX X XX X X XX XX XX XXX X X X X X XX XX X X X X X X XX XX X X XX X XX X X XX X X XX X X X X X X X XXXXX X X X XX X XX X X X XX X X X X X XX X X X X X XXXX X X X XX X X X X X XX XX X X X X X X X X X X X X XX X X X XXXX X X XX X X X X XX X XX XX X XX X XX X XXX X X X XX X X X X XX X XX XXX X X X X X X X X XX X X XX X X XX X XXXX X X X X X X X XX X XX X X X X X XX X X X XX XX XX X X XX XX X X XX XXXX X X X X X X XXX XX XX X X X XX X X X X X X X X X X X X X X X X XXX X X X X XX XX XX XX XXX X X XX X XXX X X X XX XX X XX X X XX X X X X X XX X XX X XX X XX X X X X X X X X X X X X X XX X X XXX X XXXX X XX XX X X X X X X X X X X X X X XXXX X XX X X XX X X XX X X X X XX XX X X X X X X X X X X X XX X X X X X X X X X X X X X X X X X X X X X XX XXX XXXX XXX X X X XX XX X XX X X X X XX XX X X X X XX X X X X X X X X X X X X XX XX X XX XX X X XXXX XX X X X X X XX X XXX X X X XX XXX X X X X X X X XX X X XXX X X X X X X X X X XX X X X X X X X XX X XX X X XX XXXX XX X X X X X X XXXX X X X X X X X X X XXXXX X X X XX X X X X X XXX X X XXXX X X X X XX X X X X XXXX X X XX X X XX X XX X XX X XX X X X XX XX X X X X X X X X X X X X X X XX XX X X X X X X X X X X X X XX X XX XXX X X XX X XX X X X X X X X XX X X X X X X X X X X X X X X X X X X X X XX X X X X XXX X X X X X X X X X X XX X X X X X X X XX X XX XX XX X X XX X X X X X X XX X XX X XX XXXX X X X XXXX X X X X X X XX X X X X X X X X X X X X X X XX XX X X XX XX X XX X X X X XX X X X XX XX XX X X X X X X X X X X XX XX X X XX X X XX XXX XX X XX X X X X XXX XX X X X X X X X X XX X XX X XX XX GXX X X X X X X X X XXX XXXX X X X X X XXXX X X X XX X X X X XX X X X X X XXX X X X X XX XXXXX X X X X X XX X X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._randomMaze.txt

mazes/randomMazeSol.txt

100 100 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XSX X X X XX X X XX XX X X X X X X XX XX XX XX X.X XXX X X X X XXX X X X X XX XX XX X X X XX X XX XX X X. XXX X X XX X XX X XX XX XX X X X XXX X X X X X X X X.X X X X X X X X X X X X X X X X X X X X X.....X XX X X X X X X X XXX X X XX X X X X X X X......X X X X X X X XX X X XXX X X X X X X X X XX...X XX XXXX X X XX X X X X X X X X XX X X X XXX XX.....X X X X X X X X X X XX X XX X X X X X...X X X XX X X X X X XX X X X X X X XX X X X X ..XX XX X X X XX XXX X X XXX X X X X X X X X XX X .... XXX X X X XX X X X X XXXX X X X X X X XX X.X X X X X X X X X XX X XXX XX X X X XX XX X X X XX X X X X X X XX..XX XXX X X XX X X XX X X X XX XX X XXX X X X ........X X XX XX X X XX X XX X X X X X X X X ....XX XX X X X X X X X X XX XX X X X XX X X XXX XXXX X XX X.. X XX XX X XX X X X XX X X X XX X X XX X X X .XX X X X X X X X X X X X XX X X X X X XXX XX X XX . XX X X X X X X X XX X X XX X X X X X XX XX X.X X X X X X X X XXXX X X XX X XXX X XX X X X X X XXX X X X X X .....X X X X X XX XXXXX XXX X X X X X XXX XXXX X ...X X XX X X X XXXX XX X X XXX X X XX X X XX XX X X.. X XX X X X X XX X X X X X X X XX XXX X XX X X X . X X XXX XX X X X X X X XX X X XXXX X XX X X .X XX X XXX X X X X X X X X XX X X XX X X XX X X X X X .X XX XXX XXX X X X XX X X X XX X X X X X X X X .XX XX XX X X X X X XX X XX X X X X XX X XX X...X X X XX X X X X X X X X X XX X XX X X XX X .XX XX XX X X X X X X XX X X X XX X X X X XXXXX ... X X X XXX XX X X XXX X X X X XXXX XX XXX .X X X XX X XX X XXX X X XX X X X X X X X X X XXXX X X X.. XX XX X X XX X X XX X XX X X X X X X X X X X XX X .X X X X X X X X X X X X X X XX X X X X X X X X X . X X X X X X X XX X X X X XXXX X XX XX X X X X X .X X X X X X X X XX X X XX X X X XXX X .. X X X X X X XXX X X X X XX X X X XX XX X X X .X X X X XX X X XX XXX X XX X XX X X X X X XX X XX X .X X X X X X X X X X X X X X X X X X X X X ....X X X X XX X X X X X X X X X X XX XX X X XX X XX XX ..XX X XX X X X X X X X XX X XX X XXX XX X X X XX ...X X XX X XX X X X XX X X XX X X XXX XXX X X X ....X X XX XX X X X X X X X X X X XXX X X X .....X X X X X X X X X XXXX X X X XX X X X XX X X XX X......X X X X XX XX X X X X X XXX XX. X XX X X X X X X X XX X X XX X X . XX X X XX XX XX XX X X X XX X X X X X X XX X XXX X X X .X X X XX X X X X X XX X X X X XXX X X X X X X X X ..X XX XX X X XXX XX X X X X XX X X XX XX X X X X X..X XX X XX XX XX XX X X XX X X X XX X XXX X X XX X ...X XX X XX X X X X X X XX X X X X X X X X X XXX X X X .XX X X X X X X X X X X X X X X X XX XX X XX XX X. XX X X X X X XX X XX X X X X X X X X XX .X XX XXX X X XX XXX X X X X XX X X X X X X X X XXX X XX X .X X X X XX X X X XXX X X X X X XX X XX X .....XX X X XX X X X XX XX XX X XX X X X XX .X X XXX XXXX X X XX XX X X XXX XX X X X XX X X XX ....X X X X X X XXXX X X X X X X X X X XX X X XXX XX XX X X X... X X X X X X X X X XX X X X X X X X X X X . XX X X X X X X XXX XX X XX X X X X X X X X X . XXX X X X X X X X XX XX X X X X X XX X X XXX .X X X XX XX X X X XX X X X XX X XX XX X XX . X XX X XX X X X X XXXX X X XX X X X X X X X X . X X XX XXX XX XXX XX X X X X X X X X X X XX XXXXX . X X XX X XX X X XX XX XX XXX X X X X X XX XX X X X .X X X XX XX X X XX X XX X X XX X X XX X X X X X .X X XXXXX X X X XX X XX X X X XX X X . X X X XX X X X X X XXXX X X X XX X X X X X XX XX X X . X X X X X X X X X X XX X X X XXXX X X XX X X X X . XX X XX XX X XX X XX X XXX X X X XX X X X X XX X XX.XXX X X X X X X X X XX X X XX X X XX X XXXX X X X X X ..X X XX X XX X X X X X XX X X X XX XX XX X X XX ... XX X X XX XXXX X X X X X X XXX XX XX X X X XX X X X . X X X X X X X X X X X X X XXX X X X X XX .XX XX XX XXX X X XX X XXX X X X XX XX X XX X X XX ..X X X X X XX X XX X XX X XX X X X X X X X X . X X X X X XX X X XXX X XXXX X XX XX X X X X X.X X X X X X X X XXXX X XX X X XX X X XX X X X X. XX XX X X X X X X X X X X X XX X X X X X X X X X X .X X X X X X X X X X X XX XXX XXXX XXX X X X.XX XX X XX X X X X XX XX X X X X XX X X ....X X X X X X X X X X XX XX X XX XX X X XXXX XX . X X X X X XX X XXX X X X XX XXX X . X X X X X X XX X X XXX X X X X X X X X X XX .X X X X X X X XX X XX X X XX XXXX XX X X X X X .X XXXX X X X X X X X X X XXXXX X X X XX X X X X X..XXX X X XXXX X X X X XX X X X X XXXX X X XX X X....... XX X XX X XX X XX X X X XX XX X X X X X X X X . X X X X X X XX XX X X X X X X X X X X X X XX . X XX XXX X X XX X XX X X X X X X X XX X X. X X X X X X X X X X X X X X X X X X XX X. X X X XXX X X X X X X X X X X XX X X X X X X. X XX X XX XX XX X X XX X X X X X X XX X XX X .XX XXXX X X X XXXX X X X X X X XX X X X X X X X X X X.. X X X X XX XX X X XX XX X XX X X X X XX X X X..XX XX XX X X X X X X X X X X XX XX X X XX X X XX XXX.XX X XX X X X X XXX XX X X X X X X X X XX X XX X XX XX .GXX X X X X X X X X XXX XXXX X X X X X XXXX X X X XX X X X X XX X X X X X XXX X X X X XX XXXXX X X X X X XX X X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._randomMazeSol.txt

mazes/straight.txt

3 10 XXXXXXXXXX XS GX XXXXXXXXXX

__MACOSX/mazes/._straight.txt

mazes/straightSol.txt

3 10 XXXXXXXXXX XS......GX XXXXXXXXXX

__MACOSX/mazes/._straightSol.txt

mazes/tinyMaze.txt

7 9 XXXXXXXXX X X XXXX XX X X X X XX XX X XGX S X XXXXXXXXX

__MACOSX/mazes/._tinyMaze.txt

mazes/tinyMazeSol.txt

7 9 XXXXXXXXX X X XXXX XX X X.... X X.XX.XX X XGX ..S X XXXXXXXXX

__MACOSX/mazes/._tinyMazeSol.txt

mazes/tinyOpen.txt

5 5 XXXXX XS X X X X GX XXXXX

__MACOSX/mazes/._tinyOpen.txt

mazes/tinyOpenSol.txt

5 5 XXXXX XS..X X .X X GX XXXXX

__MACOSX/mazes/._tinyOpenSol.txt

mazes/tinyOpenSol2.txt

5 5 XXXXX XS X X. X X..GX XXXXX

__MACOSX/mazes/._tinyOpenSol2.txt

mazes/turn.txt

30 30 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X SXG X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._turn.txt

mazes/turnSol.txt

30 30 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X ... X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X .X. X X SXG X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._turnSol.txt

mazes/unsolvable.txt

18 36 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X SX X XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X X XX X X XXXXXXX XX X X XX X X X X XXXX XXXXXXXXX XX XXXXX X XX X X X X XX XX X X XX X X X X X XXXX XXX XXXXXX X X X X X X X XXXXXXXXXXX X X XX X X XXXXXXXXXXX XX XXXXX X XX X XX XXXXXXXXX XX X X XXXXXX XXXXXXX XX XXXXXX X XXXXXX X XXXX XX X X X XXXXXX XXXXX X XX XX XXXXX X XXXXXX X XXXXX XX X X XXXXXX XXXXXXXXXXX XX XX X XXXXXXXXXX XXXXXX X XG XXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._unsolvable.txt

mazes/unsolvableSol.txt

18 36 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X SX X XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX X X XX X X XXXXXXX XX X X XX X X X X XXXX XXXXXXXXX XX XXXXX X XX X X X X XX XX X X XX X X X X X XXXX XXX XXXXXX X X X X X X X XXXXXXXXXXX X X XX X X XXXXXXXXXXX XX XXXXX X XX X XX XXXXXXXXX XX X X XXXXXX XXXXXXX XX XXXXXX X XXXXXX X XXXX XX X X X XXXXXX XXXXX X XX XX XXXXX X XXXXXX X XXXXX XX X X XXXXXX XXXXXXXXXXX XX XX X XXXXXXXXXX XXXXXX X XG XXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

__MACOSX/mazes/._unsolvableSol.txt

__MACOSX/._mazes