Implement the remaining modes of reasoning in nsolve, and thus
[sgt/puzzles] / puzzles.but
index 8e99a31..8d592b5 100644 (file)
@@ -589,19 +589,39 @@ make them easier, since the symmetry constraints can force more
 clues than necessary to be present. Completely asymmetric puzzles
 have the freedom to contain as few clues as possible.
 
+Finally, you can configure the difficulty of the generated puzzles.
+Difficulty levels are judged by the complexity of the techniques of
+deduction required to solve the puzzle: each level requires a mode
+of reasoning which was not necessary in the previous one. In
+particular, on difficulty levels \q{Trivial} and \q{Basic} there
+will be a square you can fill in with a single number at all times,
+whereas at \q{Intermediate} level and beyond you will have to make
+partial deductions about the \e{set} of squares a number could be in
+(or the set of numbers that could be in a square). None of the
+difficulty levels generated by this program ever requires making a
+guess and backtracking if it turns out to be wrong.
+
+Generating difficult puzzles is itself difficult: if you select
+\q{Intermediate} or \q{Advanced} difficulty, Solo may have to make
+many attempts at generating a puzzle before it finds one hard enough
+for you. Be prepared to wait, especially if you have also configured
+a large puzzle size.
+
 \H{solo-cmdline} \I{command line, for Solo}Additional command-line
 configuration
 
-The symmetry parameter, described in \k{solo-parameters}, is not
-mentioned by default in the game ID (see \k{common-id}). So if you
-set your symmetry to (say) 4-way rotational, and then you generate a
-3\by\.4 grid, then the game ID will simply say \c{3x4:}\e{numbers}.
-This means that if you send the game ID to another player and they
-paste it into their copy of Solo, their game will not be
-automatically configured to use the same symmetry 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.)
+The symmetry and difficulty parameters (described in
+\k{solo-parameters}) are not mentioned by default in the game ID
+(see \k{common-id}). So if (for example) you set your symmetry to
+4-way rotational and your difficulty to \q{Advanced}, and then you
+generate a 3\by\.4 grid, then the game ID will simply say
+\c{3x4:}\e{numbers}. This means that if you send the game ID to
+another player and they paste it into their copy of Solo, their game
+will not be automatically configured to use the same symmetry and
+difficulty settings 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
@@ -616,9 +636,18 @@ parameters:
 
 \b \cq{a} for no symmetry at all (stands for \q{asymmetric})
 
+\b \cq{dt} for Trivial difficulty level
+
+\b \cq{db} for Basic difficulty level
+
+\b \cq{di} for Intermediate difficulty level
+
+\b \cq{da} for Advanced difficulty level
+
 So, for example, you can make Solo generate asymmetric 3x4 grids by
 running \cq{solo 3x4a}, or 4-way rotationally symmetric 2x3 grids by
-running \cq{solo 2x3r4}.
+running \cq{solo 2x3r4}, or \q{Advanced}-level 2x3 grids by running
+\cq{solo 2x3da}.
 
 
 \A{licence} \I{MIT licence}\ii{Licence}