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.
 
 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
 
 \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
 
 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{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
 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}
 
 
 \A{licence} \I{MIT licence}\ii{Licence}