Brand new difficulty level in Solo. The other day Gareth and I
[sgt/puzzles] / puzzles.but
index 6b81df1..eadf971 100644 (file)
@@ -20,6 +20,8 @@
 
 \define{by} \u00D7{x}
 
 
 \define{by} \u00D7{x}
 
+\define{dash} \u2013{-}
+
 This is a collection of small one-player puzzle games.
 
 \copyright This manual is copyright 2004-5 Simon Tatham. All rights
 This is a collection of small one-player puzzle games.
 
 \copyright This manual is copyright 2004-5 Simon Tatham. All rights
@@ -43,16 +45,15 @@ 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
 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.
+ends \dash PocketPC, Mac OS pre-10, or whatever it might be \dash
+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
-convenient for me. I do not claim credit, in general, for inventing
-the rules of any of these puzzles; all I claim is authorship of the
-code (or at least those parts of the code that weren't contributed
-by other people!).
+The actual games in this collection were mostly not my invention; they
+are re-implementations of existing game concepts within my portable
+puzzle framework. I do not claim credit, in general, for inventing the
+rules of any of these puzzles. (I don't even claim authorship of all
+the code; some of the puzzles have been submitted by other authors.)
 
 This collection is distributed under the \i{MIT licence} (see
 \k{licence}). This means that you can do pretty much anything you like
 
 This collection is distributed under the \i{MIT licence} (see
 \k{licence}). This means that you can do pretty much anything you like
@@ -960,11 +961,6 @@ Removing a region causes the rest of the grid to shuffle up:
 blocks that are suspended will fall down (first), and then empty
 columns are filled from the right. 
 
 blocks that are suspended will fall down (first), and then empty
 columns are filled from the right. 
 
-The game generator does not try to guarantee soluble grids;
-it will, however, ensure that there are at least 2 squares of each 
-colour on the grid at the start (and will forbid custom grids for which
-that would be impossible).
-
 Same Game was contributed to this collection by James Harvey.
 
 \H{samegame-controls} \i{Same Game controls}
 Same Game was contributed to this collection by James Harvey.
 
 \H{samegame-controls} \i{Same Game controls}
@@ -1010,6 +1006,23 @@ any points at all. With the alternative \q{(n-1)^2} system, regions of
 two squares score a point each, and larger regions score relatively
 more points.
 
 two squares score a point each, and larger regions score relatively
 more points.
 
+\dt \e{Ensure solubility}
+
+\dd If this option is ticked (the default state), generated grids
+will be guaranteed to have at least one solution.
+
+\lcont{
+
+If you turn it off, the game generator will not try to guarantee
+soluble grids; it will, however, still ensure that there are at
+least 2 squares of each colour on the grid at the start (since a
+grid with exactly one square of a given colour is \e{definitely}
+insoluble). Grids generated with this option disabled may contain
+more large areas of contiguous colour, leading to opportunities for
+higher scores; they can also take less time to generate.
+
+}
+
 
 \C{flip} \i{Flip}
 
 
 \C{flip} \i{Flip}
 
@@ -1197,11 +1210,12 @@ time (but always one that is known to have a solution).
 
 \cfg{winhelp-topic}{games.dominosa}
 
 
 \cfg{winhelp-topic}{games.dominosa}
 
-A normal set of dominoes has been arranged irregularly into a
-rectangle; then the number in each square has been written down and
-the dominoes themselves removed. Your task is to reconstruct the
-pattern by arranging the set of dominoes to match the provided array
-of numbers.
+A normal set of dominoes \dash that is, one instance of every
+(unordered) pair of numbers from 0 to 6 \dash has been arranged
+irregularly into a rectangle; then the number in each square has
+been written down and the dominoes themselves removed. Your task is
+to reconstruct the pattern by arranging the set of dominoes to match
+the provided array of numbers.
 
 This puzzle is widely credited to O. S. Adler, and takes part of its
 name from those initials.
 
 This puzzle is widely credited to O. S. Adler, and takes part of its
 name from those initials.
@@ -1296,14 +1310,14 @@ the following ways:
    to the left. 
 
 \b A laser that would re-emerge from the entry location is considered to be
    to the left. 
 
 \b A laser that would re-emerge from the entry location is considered to be
-   'reflected'
+   \q{reflected}
 
 
-\b A laser which would get deflected down the laser firing range is also
-   considered to be 'reflected'; this means that a ball to the front-left
-   or front-right of a laser's entry point will reflect the laser. 
+\b A laser which would get deflected before entering the arena (down the
+   \q{firing range}) by a ball to the front-left or front-right of its
+   entry point is also considered to be \q{reflected}.
 
 
-Lasers that are reflected appear as a 'R'; lasers that hit balls
-dead-on appear as 'H'. Otherwise, a number appears at the firing point
+Lasers that are reflected appear as a \q{R}; lasers that hit balls
+dead-on appear as \q{H}. Otherwise, a number appears at the firing point
 and the location where the laser emerges (this number is unique to
 that shot).
 
 and the location where the laser emerges (this number is unique to
 that shot).
 
@@ -1327,7 +1341,7 @@ of the laser behaviours shown above:
 
 As shown, it is possible for a ball to receive multiple reflections
 before re-emerging (see turn 3). Similarly, a ball may be reflected
 
 As shown, it is possible for a ball to receive multiple reflections
 before re-emerging (see turn 3). Similarly, a ball may be reflected
-(possibly more than once) before receiving a hit (the 'H' on the
+(possibly more than once) before receiving a hit (the \q{H} on the
 left side of the example).
 
 Note that any layout with more that 4 balls may have a non-unique
 left side of the example).
 
 Note that any layout with more that 4 balls may have a non-unique
@@ -1374,14 +1388,25 @@ right-clicking in the laser firing range above/below that column, or
 to the left/right of that row.  
 
 When an appropriate number of balls have been guessed a button will
 to the left/right of that row.  
 
 When an appropriate number of balls have been guessed a button will
-appear at the top-right corner of the grid; clicking that will mark
+appear at the top-left corner of the grid; clicking that will mark
 your guesses. 
 
 your guesses. 
 
-Once marked, correctly-placed balls are displayed as filled black
-circles.  Incorrectly-placed balls are displayed as filled black
-circles with red crosses, and missing balls are filled red circles.
-In addition, a red circle marks any laser you had already fired
-which is not consistent with your ball layout, and red text marks
+If you click the \q{mark} button and your guesses are not correct,
+the game will show you as little information as possible to
+demonstrate this to you, so you can try again. If your ball
+positions are not consistent with the laser paths you already know
+about, one laser path will be circled to indicate that it proves you
+wrong. If your positions match all the existing laser paths but are
+still wrong, one new laser path will be revealed (written in red)
+which is not consistent with your current guesses.
+
+If you decide to give up completely, you can select Solve to reveal
+the actual ball positions. At this point, correctly-placed balls
+will be displayed as filled black circles; incorrectly-placed balls
+are displayed as filled black circles with red crosses, and missing
+balls are filled red circles. In addition, a red circle marks any
+laser you had already fired which is not consistent with your ball
+layout (just as when you press the mark button), and red text marks
 any laser you \e{could} have fired in order to distinguish your ball
 layout from the right one.
 
 any laser you \e{could} have fired in order to distinguish your ball
 layout from the right one.
 
@@ -1394,19 +1419,229 @@ These parameters are available from the \q{Custom...} option on the
 
 \dt \e{Width}, \e{Height}
 
 
 \dt \e{Width}, \e{Height}
 
-\dd Size of grid in squares. There are 2 * \e{Width} * \e{Height} lasers 
+\dd Size of grid in squares. There are 2 \by \e{Width} \by \e{Height} lasers 
 per grid, two per row and two per column. 
 
 \dt \e{No. of balls}
 
 \dd Number of balls to place in the grid. This can be a single number,
 per grid, two per row and two per column. 
 
 \dt \e{No. of balls}
 
 \dd Number of balls to place in the grid. This can be a single number,
-or a range (separated with a hyphen, like '2-6'), and determines the
-number of balls to place on the grid. The 'reveal' button is only
+or a range (separated with a hyphen, like \q{2-6}), and determines the
+number of balls to place on the grid. The \q{reveal} button is only
 enabled if you have guessed an appropriate number of balls; a guess
 using a different number to the original solution is still acceptable,
 if all the laser inputs and outputs match.
 
 
 enabled if you have guessed an appropriate number of balls; a guess
 using a different number to the original solution is still acceptable,
 if all the laser inputs and outputs match.
 
 
+\C{slant} \i{Slant}
+
+\cfg{winhelp-topic}{games.slant}
+
+You have a grid of squares. Your aim is to draw a diagonal line
+through each square, and choose which way each line slants so that
+the following conditions are met:
+
+\b The diagonal lines never form a loop.
+
+\b Any point with a circled number has precisely that many lines
+meeting at it. (Thus, a 4 is the centre of a cross shape, whereas a
+zero is the centre of a diamond shape \dash or rather, a partial
+diamond shape, because a zero can never appear in the middle of the
+grid because that would immediately cause a loop.)
+
+Credit for this puzzle goes to \i{Nikoli} \k{nikoli-slant}.
+
+\B{nikoli-slant}
+\W{http://www.nikoli.co.jp/puzzles/39/index.htm}\cw{http://www.nikoli.co.jp/puzzles/39/index.htm}
+(in Japanese)
+
+
+\H{slant-controls} \i{Slant controls}
+
+\IM{Slant controls} controls, for Slant
+\IM{Slant controls} keys, for Slant
+\IM{Slant controls} shortcuts (keyboard), for Slant
+
+Left-clicking in a blank square will place a \cw{\\} in it (a line
+leaning to the left, i.e. running from the top left of the square to
+the bottom right). Right-clicking in a blank square will place a
+\cw{/} in it (leaning to the right, running from top right to bottom
+left).
+
+Continuing to click either button will cycle between the three
+possible square contents. Thus, if you left-click repeatedly in a
+blank square it will change from blank to \cw{\\} to \cw{/} back to
+blank, and if you right-click repeatedly the square will change from
+blank to \cw{/} to \cw{\\} back to blank. (Therefore, you can play
+the game entirely with one button if you need to.)
+
+(All the actions described in \k{common-actions} are also available.)
+
+\H{slant-parameters} \I{parameters, for Slant}Slant 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. At Hard level,
+you are required to do deductions based on knowledge of
+\e{relationships} between squares rather than always being able to
+deduce the exact contents of one square at a time. (For example, you
+might know that two squares slant in the same direction, even if you
+don't yet know what that direction is, and this might enable you to
+deduce something about still other squares.) Even at Hard level,
+guesswork and backtracking should never be necessary.
+
+
+\C{lightup} \i{Light Up}
+
+\cfg{winhelp-topic}{games.lightup}
+
+You have a grid of squares. Some are filled in black; some of the
+black squares are numbered. Your aim is to \q{light up} all the
+empty squares by placing light bulbs in some of them.
+
+Each light bulb illuminates the square it is on, plus all squares in
+line with it horizontally or vertically unless a black square is
+blocking the way.
+
+To win the game, you must satisfy the following conditions:
+
+\b All non-black squares are lit.
+
+\b No light is lit by another light.
+
+\b All numbered black squares have exactly that number of lights adjacent to
+   them (in the four squares above, below, and to the side).
+
+Non-numbered black squares may have any number of lights adjacent to them. 
+
+Credit for this puzzle goes to \i{Nikoli} \k{nikoli-lightup}.
+
+Light Up was contributed to this collection by James Harvey.
+
+\B{nikoli-lightup}
+\W{http://www.nikoli.co.jp/puzzles/32/index-e.htm}\cw{http://www.nikoli.co.jp/puzzles/32/index-e.htm}
+(beware of Flash)
+
+\H{lightup-controls} \i{Light Up controls}
+
+\IM{Light Up controls} controls, for Light Up
+\IM{Light Up controls} keys, for Light Up
+\IM{Light Up controls} shortcuts (keyboard), for Light Up
+
+Left-clicking in a non-black square will toggle the presence of a light
+in that square. Right-clicking in a non-black square toggles a mark there to aid
+solving; it can be used to highlight squares that cannot be lit, for example. 
+
+You may not place a light in a marked square, nor place a mark in a lit square.
+
+The game will highlight obvious errors in red. Lights lit by other
+lights are highlighted in this way, as are numbered squares which
+do not (or cannot) have the right number of lights next to them.
+  
+Thus, the grid is solved when all non-black squares have yellow
+highlights and there are no red lights.
+
+
+\H{lightup-parameters} \I{parameters, for Light Up}Light Up 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{%age of black squares}
+
+\dd Rough percentage of black squares in the grid.
+
+\lcont{
+
+This is a hint rather than an instruction. If the grid generator is
+unable to generate a puzzle to this precise specification, it will
+increase the proportion of black squares until it can.
+
+}
+
+\dt \e{Symmetry}
+
+\dd Allows you to specify the required symmetry of the black squares
+in the grid. (This does not affect the difficulty of the puzzles
+noticeably.)
+
+\dt \e{Difficulty}
+
+\dd \q{Easy} means that the puzzles should be soluble without
+backtracking or guessing, \q{Hard} means that some guesses will
+probably be necessary.
+
+
+\C{map} \i{Map}
+
+\cfg{winhelp-topic}{games.map}
+
+You are given a map consisting of a number of regions. Your task is
+to colour each region with one of four colours, in such a way that
+no two regions sharing a boundary have the same colour. You are
+provided with some regions already coloured, sufficient to make the
+remainder of the solution unique.
+
+Only regions which share a length of border are required to be
+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
+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
+for many detailed suggestions.
+
+
+\H{map-controls} \i{Map controls}
+
+\IM{Map controls} controls, for Map
+\IM{Map controls} keys, for Map
+\IM{Map controls} shortcuts (keyboard), for Map
+
+To colour a region, click on an existing region of the desired
+colour and drag that colour into the new region.
+
+(The program will always ensure the starting puzzle has at least one
+region of each colour, so that this is always possible!)
+
+If you need to clear a region, you can drag from an empty region, or
+from the puzzle boundary if there are no empty regions left.
+
+
+\H{map-parameters} \I{parameters, for Map}Map 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{Regions}
+
+\dd Number of regions in the generated map.
+
+\dt \e{Difficulty}
+
+\dd In \q{Easy} mode, there should always be at least one region
+whose colour can be determined trivially. In \q{Normal} mode, you
+will have to use more complex logic to deduce the colour of some
+regions. However, it will always be possible without having to
+guess or backtrack.
+
+
 \A{licence} \I{MIT licence}\ii{Licence}
 
 This software is \i{copyright} 2004-2005 Simon Tatham.
 \A{licence} \I{MIT licence}\ii{Licence}
 
 This software is \i{copyright} 2004-2005 Simon Tatham.