Maze Assignment

The goal of this assignment is to write a planning or learning program for the marble maze game that

The interface to maze1.c consists of the following functions:

maze1.c and maze1.h do not depend on any graphics, and should run on windows and linux (compiled as C rather than C++ programs). In order to make this more fun, ease debugging, and visualize results, it is useful to incorporate some graphics. I have used the GLUT toolkit on top of openGL. The Makefile in the tar file below and the project definition in the zip file below show how to use GLUT. On linux, try to use the freeglut package, since that does not force the use of a event loop (rpms for RedHat 9). Those of you who want to use windows, try to get freeglut to work. An alternative is to use an older version of GLUT, modified along these lines.

Here is a tar file of the above programs: maze1.tar.

Here is a zip file that has projects for the programs manual1.c, path1.c, and path1-execute.c (all now .cpp to make Windows happy) in a directory called "maze". path1.c was modified so it would work with the older version of glut (planner called by window event loop idle function). manual1.c and path1-execute.c are already compatible with the older version of glut.

Here is a maze generator written by Martin Stolle.

Here are scans of actual mazes. If someone can turn them into maze description files, similar to board2, that would be very helpful. Mazes that did not fit on the scanner have two scans, mazeXa.jpg and mazeXb.jpg.

Here are some maze files and software to digitize the above scans from Dan, Rob, and Tom. They say: "We didn't convert all the mazes because three of them were nearly identical. We've also included the Matlab function that creates the maze files with the user clicking on the maze image to locate obstacles. It's fairly straight-forward to use - the instructions are printed above the image. To start it just type createMaze('filename.jpg'). Anyway, no guarantees on the accuracy of the maze files we've provided!"

You ask: So what do I turn in?

Known bugs, simplifications: