X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/8b5b08f78dbca1843ba9460cc54dd647fbb0e364..e8b58d59f9e1c77093c4082b7c1ea3f88049be5c:/puzzles.but diff --git a/puzzles.but b/puzzles.but index 00dfef5..f044670 100644 --- a/puzzles.but +++ b/puzzles.but @@ -24,7 +24,7 @@ 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. @@ -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 -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 @@ -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. -(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.) @@ -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 -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{_}) @@ -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 -\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. @@ -263,7 +265,7 @@ following sections. \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 @@ -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!) -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 @@ -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.) +\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} @@ -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}. -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{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 @@ -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 -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. @@ -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 -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 @@ -1722,20 +1807,11 @@ These parameters are available from the \q{Custom...} option on the \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} @@ -1802,9 +1878,195 @@ These parameters are available from the \q{Custom...} option on the \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} -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. @@ -1828,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. +\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