X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/e91825f8e43648bf129dae18809ee2e38af70d33..ea25d9da1671ff72154b974522350b70ef46e0ce:/puzzles.but diff --git a/puzzles.but b/puzzles.but index 2d10605..f7d55a6 100644 --- a/puzzles.but +++ b/puzzles.but @@ -5,41 +5,47 @@ \cfg{text-filename}{puzzles.txt} -\cfg{xhtml-contents-filename}{index.html} -\cfg{xhtml-leaf-level}{1} -\cfg{xhtml-contents-depth-0}{1} -\cfg{xhtml-contents-depth-1}{2} -\cfg{xhtml-leaf-contains-contents}{true} +\cfg{html-contents-filename}{index.html} +\cfg{html-template-filename}{%k.html} +\cfg{html-index-filename}{docindex.html} +\cfg{html-leaf-level}{1} +\cfg{html-contents-depth-0}{1} +\cfg{html-contents-depth-1}{2} +\cfg{html-leaf-contains-contents}{true} \cfg{info-filename}{puzzles.info} \cfg{ps-filename}{puzzles.ps} \cfg{pdf-filename}{puzzles.pdf} +\define{by} \u00D7{x} + This is a collection of small one-player puzzle games. \copyright This manual is copyright 2004 Simon Tatham. All rights reserved. You may distribute this documentation under the MIT licence. See \k{licence} for the licence text in full. -\versionid $Id: puzzles.but,v 1.1 2004/08/16 12:23:56 simon Exp $ +\cfg{html-local-head}{} +\versionid $Id$ \C{intro} Introduction I wrote this collection because I thought there should be more small desktop toys available: little games you can pop up in a window and play for two or three minutes while you take a break from whatever -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. -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 -ends - Mac OS, PocketPC, or whatever it might be - then all the games -in this framework will immediately become available on another -platform as well. +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 +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 +ends - PocketPC, Mac OS pre-10, or whatever it might be - then all +the games in this framework will immediately become available on +another platform as well. The actual games in this collection were mostly not my invention; I saw them elsewhere, and rewrote them in a form that was more @@ -131,6 +137,8 @@ are specific to each game and are described in the following sections. \H{common-cmdline} Specifying game parameters on the \i{command line} +(This section does not apply to the 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 tables and no saved preferences. (This is because I expect at least @@ -203,6 +211,11 @@ controls are: also unlock it again, but while it's locked you can't accidentally turn it. +\dt \e{Jumble tiles}: \q{J} key + +\dd This key turns all tiles that are not locked to random +orientations. + (All the actions described in \k{common-actions} are also available.) \H{net-params} \I{parameters, for Net}Net parameters @@ -300,13 +313,13 @@ respectively. \cfg{winhelp-topic}{games.fifteen} -The old ones are the best: this is the good old \q{\i{15-puzzle}} with -sliding tiles. You have a 4x4 square grid; 15 squares contain numbered -tiles, and the sixteenth is empty. Your move is to choose a tile next -to the empty space, and slide it into the space. The aim is to end up -with the tiles in numerical order, with the space in the bottom right -(so that the top row reads 1,2,3,4 and the bottom row reads -13,14,15,\e{space}). +The old ones are the best: this is the good old \q{\i{15-puzzle}} +with sliding tiles. You have a 4\by\.4 square grid; 15 squares +contain numbered tiles, and the sixteenth is empty. Your move is to +choose a tile next to the empty space, and slide it into the space. +The aim is to end up with the tiles in numerical order, with the +space in the bottom right (so that the top row reads 1,2,3,4 and the +bottom row reads 13,14,15,\e{space}). \H{fifteen-controls} \i{Fifteen controls} @@ -406,10 +419,56 @@ When a rectangle of the correct size is completed, it will be shaded. \H{rectangles-params} \I{parameters, for Rectangles}Rectangles parameters -The only parameters available from the \q{Custom...} option on the -\q{Type} menu are \e{Width} and \e{Height}, which are -self-explanatory. - +The \q{Custom...} option on the \q{Type} menu offers you \e{Width} +and \e{Height} parameters, which are self-explanatory. + +\q{Expansion factor} is a mechanism for changing the type of grids +generated by the program. Some people prefer a grid containing a few +large rectangles to one containing many small ones. So you can ask +Rectangles to essentially generate a \e{smaller} grid than the size +you specified, and then to expand it by adding rows and columns. + +The default expansion factor of zero means that Rectangles will +simply generate a grid of the size you ask for, and do nothing +further. If you set an expansion factor of (say) 0.5, it means that +each dimension of the grid will be expanded to half again as big +after generation. In other words, the initial grid will be 2/3 the +size in each dimension, and will be expanded to its full size +without adding any more rectangles. + +Setting an expansion factor of around 0.5 tends to make the game +more difficult, and also (in my experience) rewards a less deductive +and more intuitive playing style. If you set it \e{too} high, +though, the game simply cannot generate more than a few rectangles +to cover the entire grid, and the game becomes trivial. + +\H{rectangles-cmdline} \I{command line, for Rectangles}Additional +command-line configuration + +The expansion factor parameter, described in \k{rectangles-params}, +is not mentioned by default in the game ID (see \k{common-id}). So +if you set your expansion factor to (say) 0.75, and then you +generate an 11\by\.11 grid, then the game ID will simply say +\c{11x11:}\e{numbers}. This means that if you send the game ID to +another player and they paste it into their copy of Rectangles, +their game will not be automatically configured to use the same +expansion factor in any subsequent grids it generates. (I don't +think the average person examining a single grid sent to them by +another player would want their configuration modified to that +extent.) + +If you are specifying a game ID or game parameters on the command +line (see \k{common-cmdline}) and you do want to configure the +expansion factor, you can do it by suffixing the letter \cq{e} to +the parameters, followed by the expansion factor as a decimal +number. For example: + +\b \cq{rect 11x11e0.75} starts Rectangles with a grid size of +11\u00d7{x}11 and an expansion factor of 0.75. + +\b \cq{rect 11x11e0.75:g11c6e5e4a2_4e9c3b3d3b5g2b6c4k4g30a8n3j1g6a2} +starts Rectangles with a grid size of 11\u00d7{x}11, an expansion +factor of 0.75, \e{and} a specific game selected. \C{netslide} \i{Netslide} @@ -421,17 +480,107 @@ generation of Net (see \k{net}) with the movement of Sixteen (see into place you have to slide them into place by moving a whole row at a time. - As in Sixteen, \I{controls, for Netslide}control is with the mouse. See \k{sixteen-controls}. \I{parameters, for Netslide}Game parameters are the same as for Net (see \k{net-params}). +\C{pattern} \i{Pattern} + +\cfg{winhelp-topic}{games.pattern} + +You have a grid of squares, which must all be filled in either black +or white. Beside each row of the grid are listed the lengths of the +runs of black squares on that row; above each column are listed the +lengths of the runs of black squares in that column. Your aim is to +fill in the entire grid black or white. + +I first saw this puzzle form around 1995, under the name +\q{\i{nonograms}}. I've seen it in various places since then, under +different names. + +Normally, puzzles of this type turn out to be a meaningful picture +of something once you've solved them. However, since this version +generates the puzzles automatically, they will just look like random +groupings of squares. (One user has suggested that this is actually +a \e{good} thing, since it prevents you from guessing the colour of +squares based on the picture, and forces you to use logic instead.) +The advantage, though, is that you never run out of them. + +\H{pattern-controls} \I{controls, for Pattern}Pattern controls + +This game is played with the mouse. + +Left-click in a square to colour it black. Right-click to colour it +white. If you make a mistake, you can middle-click, or hold down +Shift while clicking with any button, to colour the square in the +default grey (meaning \q{undecided}) again. + +You can click and drag with the left or right mouse button to colour +a vertical or horizontal line of squares black or white at a time +(respectively). If you click and drag with the middle button, or +with Shift held down, you can colour a whole rectangle of squares +grey. + +(All the actions described in \k{common-actions} are also available.) + +\H{pattern-parameters} \I{parameters, for Pattern}Pattern parameters + +The only options available from the \q{Custom...} option on the \q{Type} +menu are \e{Width} and \e{Height}, which are self-explanatory. + +\C{solo} \i{Solo} + +\cfg{winhelp-topic}{games.solo} + +You have a square grid, which is divided into square or rectangular +blocks. Each square must be filled in with a digit from 1 to the +size of the grid, in such a way that + +\b every row contains only one occurrence of each digit + +\b every column contains only one occurrence of each digit + +\b every block contains only one occurrence of each digit. + +You are given some of the numbers as clues; your aim is to place the +rest of the numbers correctly. + +The default puzzle size is 3\by\.3 (a 9\by\.9 actual grid, divided +into nine 3\by\.3 blocks). You can also select sizes with +rectangular blocks instead of square ones, such as 2\by\.3 (a +6\by\.6 grid divided into six 3\by\.2 blocks). + +If you select a puzzle size which requires more than 9 digits, the +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}, although it's also +been popularised by various newspapers under the name \q{Sudoku} or +\q{Su Doku}. + +\H{solo-controls} \I{controls, for Solo}Solo controls + +To play Solo, simply click the mouse in any empty square and then +type a digit or letter on the keyboard to fill that square. If you +make a mistake, click the mouse in the incorrect square and press +Space to clear it again (or use the Undo feature). + +(All the actions described in \k{common-actions} are also available.) + +\H{solo-parameters} \I{parameters, for Solo}Solo parameters + +Solo allows you to configure two separate dimensions of the puzzle +grid: the number of columns, and the number of rows, into which the +main grid is divided. (The size of a block is the inverse of this: +for example, if you select 2 columns and 3 rows, each actual block +will have 3 columns and 2 rows.) \A{licence} \I{MIT licence}\ii{Licence} -This software is \i{copyright} 2004 Simon Tatham. +This software is \i{copyright} 2004-2005 Simon Tatham. Portions copyright Richard Boulton.