Update manual copyright to 2006.
[sgt/puzzles] / puzzles.but
index 4b4df44..f044670 100644 (file)
@@ -24,7 +24,7 @@
 
 This is a collection of small one-player puzzle games.
 
 
 This is a collection of small one-player puzzle games.
 
-\copyright This manual is copyright 2004-5 Simon Tatham. All rights
+\copyright This manual is copyright 2004-2006 Simon Tatham. All rights
 reserved. You may distribute this documentation under the MIT licence.
 See \k{licence} for the licence text in full.
 
 reserved. You may distribute this documentation under the MIT licence.
 See \k{licence} for the licence text in full.
 
@@ -41,7 +41,7 @@ else you were doing. And I was also annoyed that every time I found
 a good game on (say) \i{Unix}, it wasn't available the next time I
 was sitting at a \i{Windows} machine, or vice versa; so I arranged
 that everything in my personal puzzle collection will happily run on
 a good game on (say) \i{Unix}, it wasn't available the next time I
 was sitting at a \i{Windows} machine, or vice versa; so I arranged
 that everything in my personal puzzle collection will happily run on
-both, and have more recently done a port to Mac OS X as well. When I
+both, and have more recently done a port to \i{Mac OS X} as well. When I
 find (or perhaps invent) further puzzle games that I like, they'll
 be added to this collection and will immediately be available on
 both platforms. And if anyone feels like writing any other front
 find (or perhaps invent) further puzzle games that I like, they'll
 be added to this collection and will immediately be available on
 both platforms. And if anyone feels like writing any other front
@@ -83,7 +83,7 @@ These actions are all available from the \I{Game menu}\q{Game} menu
 and via \I{keys}keyboard shortcuts, in addition to any game-specific
 actions.
 
 and via \I{keys}keyboard shortcuts, in addition to any game-specific
 actions.
 
-(On Mac OS X, to conform with local user interface standards, these
+(On \i{Mac OS X}, to conform with local user interface standards, these
 actions are situated on the \I{File menu}\q{File} and \I{Edit
 menu}\q{Edit} menus instead.)
 
 actions are situated on the \I{File menu}\q{File} and \I{Edit
 menu}\q{Edit} menus instead.)
 
@@ -111,12 +111,14 @@ had done before saving).
 
 }
 
 
 }
 
-\dt \ii\e{Print}
+\dt \I{printing, on Windows}\e{Print}
 
 \dd Where supported (currently only on Windows), brings up a dialog
 allowing you to print an arbitrary number of puzzles randomly
 generated from the current parameters, optionally including the
 
 \dd Where supported (currently only on Windows), brings up a dialog
 allowing you to print an arbitrary number of puzzles randomly
 generated from the current parameters, optionally including the
-current puzzle.
+current puzzle. (Only for puzzles which make sense to print, of
+course - it's hard to think of a sensible printable representation
+of Fifteen!)
 
 \dt \ii\e{Undo} (\q{U}, Ctrl+\q{Z}, Ctrl+\q{_})
 
 
 \dt \ii\e{Undo} (\q{U}, Ctrl+\q{Z}, Ctrl+\q{_})
 
@@ -172,7 +174,7 @@ recreate it later, or recreate it in somebody else's copy of the
 same puzzle.
 
 The \q{\i{Specific}} and \q{\i{Random Seed}} options from the
 same puzzle.
 
 The \q{\i{Specific}} and \q{\i{Random Seed}} options from the
-\I{Game menu}\q{Game} menu (or the \q{File} menu, on Mac OS X) each
+\I{Game menu}\q{Game} menu (or the \q{File} menu, on \i{Mac OS X}) each
 show a piece of text (a \q{game ID}) which is sufficient to
 reconstruct precisely the same game at a later date.
 
 show a piece of text (a \q{game ID}) which is sufficient to
 reconstruct precisely the same game at a later date.
 
@@ -263,7 +265,7 @@ following sections.
 
 \H{common-cmdline} Specifying game parameters on the \i{command line}
 
 
 \H{common-cmdline} Specifying game parameters on the \i{command line}
 
-(This section does not apply to the Mac OS X version.)
+(This section does not apply to the \i{Mac OS X} version.)
 
 The games in this collection deliberately do not ever save
 information on to the computer they run on: they have no high score
 
 The games in this collection deliberately do not ever save
 information on to the computer they run on: they have no high score
@@ -271,9 +273,9 @@ tables and no saved preferences. (This is because I expect at least
 some people to play them at work, and those people will probably
 appreciate leaving as little evidence as possible!)
 
 some people to play them at work, and those people will probably
 appreciate leaving as little evidence as possible!)
 
-However, if you do want to arrange for one of these games to default
-to a particular set of parameters, you can specify them on the
-command line.
+However, if you do want to arrange for one of these games to
+\I{default parameters, specifying}default to a particular set of
+parameters, you can specify them on the command line.
 
 The easiest way to do this is to set up the parameters you want
 using the \q{Type} menu (see \k{common-type}), and then to select
 
 The easiest way to do this is to set up the parameters you want
 using the \q{Type} menu (see \k{common-type}), and then to select
@@ -302,6 +304,83 @@ than by pasting it into the game ID selection box.
 then some options, such as the difficulty level in Solo, will be
 missing. See \k{common-id} for more details on this.)
 
 then some options, such as the difficulty level in Solo, will be
 missing. See \k{common-id} for more details on this.)
 
+\H{common-unix-cmdline} \i{Unix} \i{command-line} options
+
+(This section only applies to the Unix port.)
+
+In addition to specifying game parameters on the command line (see
+\k{common-cmdline}), you can also specify various options:
+
+\dt \cw{--generate }\e{n}
+
+\dd If this option is specified, instead of a puzzle being displayed,
+a number of descriptive game IDs will be \I{generating game IDs}invented
+and printed on standard output. This is useful for gaining access to
+the game generation algorithms without necessarily using the frontend.
+
+\lcont{
+
+If game parameters are specified on the command-line, they will be
+used to generate the game IDs; otherwise a default set of parameters
+will be used.
+
+The most common use of this option is in conjunction with \c{--print},
+in which case its behaviour is slightly different; see below.
+
+}
+
+\dt \I{printing, on Unix}\cw{--print }\e{w}\cw{x}\e{h}
+
+\dd If this option is specified, instead of a puzzle being displayed,
+a printed representation of one or more unsolved puzzles is sent to
+standard output, in \i{PostScript} format.
+
+\lcont{
+
+On each page of puzzles, there will be \e{w} across and \e{h} down. If
+there are more puzzles than \e{w}\by\e{h}, more than one page will be
+printed.
+
+If \c{--generate} has also been specified, the invented game IDs will
+be used to generate the printed output. Otherwise, a list of game IDs
+is expected on standard input (which can be descriptive or random
+seeds; see \k{common-id}), in the same format produced by
+\c{--generate}.
+
+For example:
+
+\c net --generate 12 --print 2x3 7x7w | lpr
+
+will generate two pages of printed Net puzzles (each of which will
+have a 7\by\.7 wrapping grid), and pipe the output to the \c{lpr}
+command, which on many systems will send them to an actual printer.
+
+There are various other options which affect printing; see below.
+
+}
+
+\dt \cw{--version}
+
+\dd Prints version information about the game, and then quits.
+
+The following options are only meaningful if \c{--print} is also
+specified:
+
+\dt \cw{--with-solutions}
+
+\dd The set of pages filled with unsolved puzzles will be followed by
+the solutions to those puzzles.
+
+\dt \cw{--scale }\e{n}
+
+\dd Adjusts how big each puzzle is when printed. Larger numbers make
+puzzles bigger; the default is 1.0.
+
+\dt \cw{--colour}
+
+\dd Puzzles will be printed in colour, rather than in black and white
+(if supported by the puzzle).
+
 
 \C{net} \i{Net}
 
 
 \C{net} \i{Net}
 
@@ -796,12 +875,18 @@ additional digits will be letters of the alphabet. For example, if
 you select 3\by\.4 then the digits which go in your grid will be 1
 to 9, plus \cq{a}, \cq{b} and \cq{c}.
 
 you select 3\by\.4 then the digits which go in your grid will be 1
 to 9, plus \cq{a}, \cq{b} and \cq{c}.
 
-I first saw this puzzle in \i{Nikoli} \k{nikoli-solo}, although it's also
-been popularised by various newspapers under the name \q{Sudoku} or
-\q{Su Doku}.
+I first saw this puzzle in \i{Nikoli} \k{nikoli-solo}, although it's
+also been popularised by various newspapers under the name
+\q{Sudoku} or \q{Su Doku}.  Howard Garns is considered the inventor
+of the modern form of the puzzle, and it was first published in
+\e{Dell Pencil Puzzles and Word Games}.  A more elaborate treatment
+of the history of the puzzle can be found on Wikipedia
+\k{wikipedia-solo}.
 
 \B{nikoli-solo} \W{http://www.nikoli.co.jp/puzzles/1/index_text-e.htm}\cw{http://www.nikoli.co.jp/puzzles/1/index_text-e.htm}
 
 
 \B{nikoli-solo} \W{http://www.nikoli.co.jp/puzzles/1/index_text-e.htm}\cw{http://www.nikoli.co.jp/puzzles/1/index_text-e.htm}
 
+\B{wikipedia-solo} \W{http://en.wikipedia.org/wiki/Sudoku}\cw{http://en.wikipedia.org/wiki/Sudoku}
+
 \H{solo-controls} \I{controls, for Solo}Solo controls
 
 To play Solo, simply click the mouse in any empty square and then
 \H{solo-controls} \I{controls, for Solo}Solo controls
 
 To play Solo, simply click the mouse in any empty square and then
@@ -1101,9 +1186,9 @@ in the correct places (in black), and also the number of
 correctly-coloured pegs in the wrong places (in white). 
 
 This game is also known (and marketed, by Hasbro, mainly) as
 correctly-coloured pegs in the wrong places (in white). 
 
 This game is also known (and marketed, by Hasbro, mainly) as
-a board game \q{Mastermind}, with 6 colours, 4 pegs per row, and 10 guesses.
-However, this version allows custom settings of number of colours
-(up to 10), number of pegs per row, and number of guesses. 
+a board game \q{\i{Mastermind}}, with 6 colours, 4 pegs per row,
+and 10 guesses. However, this version allows custom settings of number
+of colours (up to 10), number of pegs per row, and number of guesses. 
 
 Guess was contributed to this collection by James Harvey.
 
 
 Guess was contributed to this collection by James Harvey.
 
@@ -1614,7 +1699,7 @@ different colours. Two regions which meet at only one \e{point}
 (i.e. are diagonally separated) may be the same colour.
 
 I believe this puzzle is original; I've never seen an implementation
 (i.e. are diagonally separated) may be the same colour.
 
 I believe this puzzle is original; I've never seen an implementation
-of it anywhere else. The concept of a four-colouring puzzle was
+of it anywhere else. The concept of a \i{four-colouring} puzzle was
 suggested by Owen Dunn; credit must also go to Nikoli and to Verity
 Allan for inspiring the train of thought that led to me realising
 Owen's suggestion was a viable puzzle. Thanks also to Gareth Taylor
 suggested by Owen Dunn; credit must also go to Nikoli and to Verity
 Allan for inspiring the train of thought that led to me realising
 Owen's suggestion was a viable puzzle. Thanks also to Gareth Taylor
@@ -1640,6 +1725,13 @@ you think the region \e{might} be that colour. A region can contain
 stipples in multiple colours at once. (This is often useful at the
 harder difficulty levels.)
 
 stipples in multiple colours at once. (This is often useful at the
 harder difficulty levels.)
 
+If you press L during play, the game will toggle display of a number
+in each region of the map. This is useful if you want to discuss a
+particular puzzle instance with a friend \dash having an unambiguous
+name for each region is much easier than trying to refer to them all
+by names such as \q{the one down and right of the brown one on the
+top border}.
+
 (All the actions described in \k{common-actions} are also available.)
 
 \H{map-parameters} \I{parameters, for Map}Map parameters
 (All the actions described in \k{common-actions} are also available.)
 
 \H{map-parameters} \I{parameters, for Map}Map parameters
@@ -1715,20 +1807,11 @@ These parameters are available from the \q{Custom...} option on the
 
 \dd Size of grid in squares.
 
 
 \dd Size of grid in squares.
 
-\dt \e{Recursion depth}
-
-\dd Determines how much guesswork and backtracking you will need to
-do to solve the puzzle. When this is set to zero (as it is for all
-of the \q{Easy} options in the menu), you should always be able to
-deduce the state of an edge without having to guess. If you increase
-it, you will have to guess more and more.
-
-\lcont{
-
-Setting a high value for this option is liable to consume a lot of
-CPU time and memory. Be warned!
+\dt \e{Difficulty}
 
 
-}
+\dd Controls the difficulty of the generated puzzle.
+\#{FIXME: what distinguishes Easy, Medium, and Hard? In particular,
+when are backtracking/guesswork required, if ever?}
 
 
 \C{inertia} \i{Inertia}
 
 
 \C{inertia} \i{Inertia}
@@ -1768,6 +1851,18 @@ numeric keypad. Alternatively, if you click the left mouse button on
 the grid, the ball will begin a move in the general direction of
 where you clicked.
 
 the grid, the ball will begin a move in the general direction of
 where you clicked.
 
+If you use the \q{Solve} function on this game, the program will
+compute a path through the grid which collects all the remaining
+gems and returns to the current position. A hint arrow will appear
+on the ball indicating the direction in which you should move to
+begin on this path. If you then move in that direction, the arrow
+will update to indicate the next direction on the path. You can also
+press Space to automatically move in the direction of the hint
+arrow. If you move in a different direction from the one shown by
+the arrow, the hint arrows will stop appearing because you have
+strayed from the provided path; you can then use \q{Solve} again to
+generate a new path if you want to.
+
 All the actions described in \k{common-actions} are also available.
 In particular, if you do run into a mine and die, you can use the
 Undo function and resume playing from before the fatal move. The
 All the actions described in \k{common-actions} are also available.
 In particular, if you do run into a mine and die, you can use the
 Undo function and resume playing from before the fatal move. The
@@ -1783,9 +1878,195 @@ These parameters are available from the \q{Custom...} option on the
 \dd Size of grid in squares.
 
 
 \dd Size of grid in squares.
 
 
+\C{tents} \i{Tents}
+
+\cfg{winhelp-topic}{games.tents}
+
+You have a grid of squares, some of which contain trees. Your aim is
+to place tents in some of the remaining squares, in such a way that
+the following conditions are met:
+
+\b There are exactly as many tents as trees.
+
+\b The tents and trees can be matched up in such a way that each
+tent is directly adjacent (horizontally or vertically, but not
+diagonally) to its own tree. However, a tent may be adjacent to
+other trees as well as its own.
+
+\b No two tents are adjacent horizontally, vertically \e{or
+diagonally}.
+
+\b The number of tents in each row, and in each column, matches the
+numbers given round the sides of the grid.
+
+This puzzle can be found in several places on the Internet, and was
+brought to my attention by e-mail. I don't know who I should credit
+for inventing it.
+
+\H{tents-controls} \i{Tents controls}
+
+\IM{Tents controls} controls, for Tents
+
+Left-clicking in a blank square will place a tent in it.
+Right-clicking in a blank square will colour it green, indicating
+that you are sure it \e{isn't} a tent. Clicking either button in an
+occupied square will clear it.
+
+If you \e{drag} with the right button along a row or column, every
+blank square in the region you cover will be turned green, and no
+other squares will be affected. (This is useful for clearing the
+remainder of a row once you have placed all its tents.)
+
+(All the actions described in \k{common-actions} are also available.)
+
+\H{tents-parameters} \I{parameters, for Tents}Tents parameters
+
+These parameters are available from the \q{Custom...} option on the
+\q{Type} menu.
+
+\dt \e{Width}, \e{Height}
+
+\dd Size of grid in squares.
+
+\dt \e{Difficulty}
+
+\dd Controls the difficulty of the generated puzzle. More difficult
+puzzles require more complex deductions, but at present none of the
+available difficulty levels requires guesswork or backtracking.
+
+
+\C{bridges} \i{Bridges}
+
+\cfg{winhelp-topic}{games.bridges}
+
+You have a set of islands distributed across the playing area. Each
+island contains a number. Your aim is to connect the islands
+together with bridges, in such a way that:
+
+\b Bridges run horizontally or vertically.
+
+\b The number of bridges terminating at any island is equal to the
+number written in that island.
+
+\b Two bridges may run in parallel between the same two islands, but
+no more than two may do so.
+
+\b No bridge crosses another bridge.
+
+\b All the islands are connected together.
+
+There are some configurable alternative modes, which involve
+changing the parallel-bridge limit to something other than 2, and
+introducing the additional constraint that no sequence of bridges
+may form a loop from one island back to the same island. The rules
+stated above are the default ones.
+
+Credit for this puzzle goes to \i{Nikoli} \k{nikoli-bridges}.
+
+Bridges was contributed to this collection by James Harvey.
+
+\B{nikoli-bridges}
+\W{http://www.nikoli.co.jp/puzzles/14/index-e.htm}\cw{http://www.nikoli.co.jp/puzzles/14/index-e.htm}
+
+\H{bridges-controls} \i{Bridges controls}
+
+\IM{Bridges controls} controls, for Bridges
+
+To place a bridge between two islands, click the mouse down on one
+island and drag it towards the other. You do not need to drag all
+the way to the other island; you only need to move the mouse far
+enough for the intended bridge direction to be unambiguous. (So you
+can keep the mouse near the starting island and conveniently throw
+bridges out from it in many directions.)
+
+Doing this again when a bridge is already present will add another
+parallel bridge. If there are already as many bridges between the
+two islands as permitted by the current game rules (i.e. two by
+default), the same dragging action will remove all of them.
+
+If you want to remind yourself that two islands definitely \e{do
+not} have a bridge between them, you can right-drag between them in
+the same way to draw a \q{non-bridge} marker.
+
+If you think you have finished with an island (i.e. you have placed
+all its bridges and are confident that they are in the right
+places), you can mark the island as finished by left-clicking on it.
+This will highlight it and all the bridges connected to it, and you
+will be prevented from accidentally modifying any of those bridges
+in future. Left-clicking again on a highlighted island will unmark
+it and restore your ability to modify it.
+
+Violations of the puzzle rules will be marked in red:
+
+\b An island with too many bridges will be highlighted in red.
+
+\b An island with too few bridges will be highlighted in red if it
+is definitely an error (as opposed to merely not being finished
+yet): if adding enough bridges would involve having to cross another
+bridge or remove a non-bridge marker, or if the island has been
+highlighted as complete.
+
+\b A group of islands and bridges may be highlighted in red if it is
+a closed subset of the puzzle with no way to connect it to the rest
+of the islands. For example, if you directly connect two 1s together
+with a bridge and they are not the only two islands on the grid,
+they will light up red to indicate that such a group cannot be
+contained in any valid solution.
+
+\b If you have selected the (non-default) option to disallow loops
+in the solution, a group of bridges which forms a loop will be
+highlighted.
+
+(All the actions described in \k{common-actions} are also available.)
+
+\H{bridges-parameters} \I{parameters, for Bridges}Bridges parameters
+
+These parameters are available from the \q{Custom...} option on the
+\q{Type} menu.
+
+\dt \e{Width}, \e{Height}
+
+\dd Size of grid in squares.
+
+\dt \e{Difficulty}
+
+\dd Difficulty level of puzzle.
+
+\dt \e{Allow loops}
+
+\dd This is set by default. If cleared, puzzles will be generated in
+such a way that they are always soluble without creating a loop, and
+solutions which do involve a loop will be disallowed.
+
+\dt \e{Max. bridges per direction}
+
+\dd Maximum number of bridges in any particular direction. The
+default is 2, but you can change it to 1, 3 or 4. In general, fewer
+is easier.
+
+\dt \e{%age of island squares}
+
+\dd Gives a rough percentage of islands the generator will try and
+lay before finishing the puzzle. Certain layouts will not manage to
+lay enough islands; this is an upper bound.
+
+\dt \e{Expansion factor (%age)}
+
+\dd The grid generator works by picking an existing island at random
+(after first creating an initial island somewhere). It then decides
+on a direction (at random), and then works out how far it could
+extend before creating another island. This parameter determines how
+likely it is to extend as far as it can, rather than choosing
+somewhere closer.
+
+High expansion factors usually mean easier puzzles with fewer
+possible islands; low expansion factors can create lots of
+tightly-packed islands.
+
+
 \A{licence} \I{MIT licence}\ii{Licence}
 
 \A{licence} \I{MIT licence}\ii{Licence}
 
-This software is \i{copyright} 2004-2005 Simon Tatham.
+This software is \i{copyright} 2004-2006 Simon Tatham.
 
 Portions copyright Richard Boulton, James Harvey and Mike Pinna.
 
 
 Portions copyright Richard Boulton, James Harvey and Mike Pinna.
 
@@ -1809,6 +2090,17 @@ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
+\IM{command-line}{command line} command line
+
+\IM{default parameters, specifying} default parameters, specifying
+\IM{default parameters, specifying} preferences, specifying default
+
+\IM{Unix} Unix
+\IM{Unix} Linux
+
+\IM{generating game IDs} generating game IDs
+\IM{generating game IDs} game ID, generating
+
 \IM{specific} \q{Specific}, menu option
 \IM{custom} \q{Custom}, menu option
 
 \IM{specific} \q{Specific}, menu option
 \IM{custom} \q{Custom}, menu option