From http://www.jwz.org/xscreensaver/xscreensaver-5.16.tar.gz
[xscreensaver] / hacks / maze.man
index f93a70f49eb808a0f3af698d5e773c6c35f9f5d5..c827da86a7a1172cc0016ec5f71511fe03922c6f 100644 (file)
@@ -3,7 +3,8 @@
 maze \- an automated X11 demo repeatedly creating and solving a random maze
 .SH SYNOPSIS
 .B maze 
 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] [\-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]
+[\-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]
+[\-fps]
 .SH DESCRIPTION
 The \fImaze\fP program creates a "random" maze and then solves it with 
 graphical feedback. 
 .SH DESCRIPTION
 The \fImaze\fP program creates a "random" maze and then solves it with 
 graphical feedback. 
@@ -26,7 +27,7 @@ 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
 .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.
+pick a random grid size.  Minimum meaningful value is 2.
 .TP 8
 .B \-live\-color \fIcolor\fP
 The color of the path.
 .TP 8
 .B \-live\-color \fIcolor\fP
 The color of the path.
@@ -34,6 +35,17 @@ The color of the path.
 .B \-dead\-color \fIcolor\fP
 The color of the failed path (it is also stippled with a 50% pattern.)
 .TP 8
 .B \-dead\-color \fIcolor\fP
 The color of the failed path (it is also stippled with a 50% pattern.)
 .TP 8
+.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.
 .B \-solve\-delay \fIinteger\fP
 Delay (in microseconds) between each step of the solution path.
 Default 5000, or about 1/200th second.
@@ -45,6 +57,29 @@ Default 2000000 (2 seconds.)
 .B \-post\-delay \fIinteger\fP
 Delay (in microseconds) after solving a maze and before generating a new one.
 Default 4000000 (4 seconds.)
 .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!
+
+The three algorithms are essentially Kruskal, Prim, and a depth-first
+recursive backtracker.
+.TP 8
+.B \-max\-length \fInum\fP
+Controls the maximum length of walls drawn in one go by generator 1.
 .PP
 Clicking the mouse in the maze window controls it.
 .TP 16
 .PP
 Clicking the mouse in the maze window controls it.
 .TP 16
@@ -56,6 +91,9 @@ Pause or unpause the program.
 .TP 16
 .B RightButton
 Exit.
 .TP 16
 .B RightButton
 Exit.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH BUGS
 Expose events force a restart of maze.
 
 .SH BUGS
 Expose events force a restart of maze.
 
@@ -96,6 +134,9 @@ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
 OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .SH AUTHOR(s)
 .nf
 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
 Jim Randell    [ XScreenSaver version ] jmr@mddjmr.fc.hp.com
   HPLabs, Bristol
 Richard Hess   [ X11 extensions ]      {...}!uunet!cimshop!rhess