maze \- an automated X11 demo repeatedly creating and solving a random maze
.SH SYNOPSIS
.B maze
-[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-grid\-size \fIpixels\fP] [\-live\-color \fIcolor\fP] [\-dead\-color \fIcolor\fP] [\-solve\-delay \fIusecs\fP] [\-pre\-delay \fIusecs\fP] [\-post\-delay \fIusecs\fP]
+[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-install] [\-visual \fIvisual\fP] [\-grid\-size \fIpixels\fP] [\-live\-color \fIcolor\fP] [\-dead\-color \fIcolor\fP] [\-solve\-delay \fIusecs\fP] [\-pre\-delay \fIusecs\fP] [\-post\-delay \fIusecs\fP] [\-generator \fIinteger\fP] [\-max\-length \fIinteger\fP] [\-bridge] [\-no\-bridge]
.SH DESCRIPTION
The \fImaze\fP program creates a "random" maze and then solves it with
graphical feedback.
.B \-root
Draw on the root window.
.TP 8
-.B \-grid\-size pixels
+.B \-install
+Install a private colormap for the window.
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use. Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-grid\-size \fIpixels\fP
The size of each block of the maze, in pixels; default is 0, meaning
pick a random grid size.
.TP 8
-.B \-live\-color color
+.B \-live\-color \fIcolor\fP
The color of the path.
.TP 8
-.B \-dead\-color color
+.B \-dead\-color \fIcolor\fP
The color of the failed path (it is also stippled with a 50% pattern.)
.TP 8
-.B \-solve\-delay integer
+.B \-skip\-color \fIcolor\fP
+The maze solver will choose to not go down a path if it can "see" (in a
+straight line) that it is a dead end. This is the color to use for paths
+that are skipped for this reason.
+.TP 8
+.B \-surround\-color \fIcolor\fP
+If the maze solver ever completely encloses an area within the maze, then
+it knows that the exit is not in there (and in fact the interior of that
+area might not even be reachable.) It will mark out those cells using this
+color.
+.TP 8
+.B \-solve\-delay \fIinteger\fP
Delay (in microseconds) between each step of the solution path.
Default 5000, or about 1/200th second.
.TP 8
-.B \-pre\-delay integer
+.B \-pre\-delay \fIinteger\fP
Delay (in microseconds) between generating a maze and starting to solve it.
Default 2000000 (2 seconds.)
.TP 8
-.B \-post\-delay integer
+.B \-post\-delay \fIinteger\fP
Delay (in microseconds) after solving a maze and before generating a new one.
Default 4000000 (4 seconds.)
+.TP 8
+.B \-generator \fInum\fP
+Sets the algorithm that will be used to generate the mazes. The
+default is \-1, which randomly selects an algorithm for each maze that
+is generated. Generator 0 is the original one, and works by walking
+around randomly until we hit a place we've been before, then
+backtracking and trying a new direction somewhere. Generator 1 picks a
+random spot in the maze, then draws a straight wall from that spot in
+a random direction until it hits another wall (and continues until the
+maze is complete). Generator 2 is based on sets. Initially all cells
+are in different sets. Then two neighboring cells are chosen and if
+they are in different sets, their sets are joined. If they were in the
+same set, a wall is built between them. This continues until the maze is
+complete.
+
+All generators generate mazes with a certain 'characteristic'. See if you
+can spot them!
+.TP 8
+.B \-max\-length \fInum\fP
+Controls the maximum length of walls drawn in one go by generator 1.
+.TP 8
+.B \-bridge
+.TP 8
+.B \-no\-bridge
+Controls whether or not a 'bridge' will appear over the logo.
.PP
Clicking the mouse in the maze window controls it.
-.IP "\fBLeftButton\fP"
+.TP 16
+.B "LeftButton
Clears the window and restarts maze.
-.IP "\fBMiddleButton\fP"
+.TP 16
+.B MiddleButton
Pause or unpause the program.
-.IP "\fBRightButton\fP"
+.TP 16
+.B RightButton
Exit.
.SH BUGS
Expose events force a restart of maze.
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.SH AUTHOR(s)
.nf
+Zack Weinberg [ Smarter maze-solver ] zack@rabi.phys.columbia.edu
+Johannes Keukelaar [ Generators 1 and 2 ] johannes@nada.kth.se
+ Royal Institute of Technology, Stockholm, Sweden
Jim Randell [ XScreenSaver version ] jmr@mddjmr.fc.hp.com
HPLabs, Bristol
Richard Hess [ X11 extensions ] {...}!uunet!cimshop!rhess