diff options
| author | Simon Tatham <anakin@pobox.com> | 2005-04-26 11:19:00 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2005-04-26 11:19:00 +0000 |
| commit | 070fb537cfd3c30bff2e0ccb3f13bebdf556bbc1 (patch) | |
| tree | aae2251b8c364feebe3daa6820ef33a10fe71ef9 /puzzles.but | |
| parent | 22ab2c0b8237e1c51fdb479668ab764900f7d0c0 (diff) | |
| download | puzzles-070fb537cfd3c30bff2e0ccb3f13bebdf556bbc1.zip puzzles-070fb537cfd3c30bff2e0ccb3f13bebdf556bbc1.tar.gz puzzles-070fb537cfd3c30bff2e0ccb3f13bebdf556bbc1.tar.bz2 puzzles-070fb537cfd3c30bff2e0ccb3f13bebdf556bbc1.tar.xz | |
Implement the remaining modes of reasoning in nsolve, and thus
enable configurable puzzle difficulty. I'm only generating grids up
to Times level (complicated non-recursive analysis but guessing
never required); I wouldn't object to providing a Telegraph
difficulty level (guessing required) but it turns out to be very
hard indeed to generate at random. I might still add it later
(probably under the name `Unreasonable' :-) if I can think of an
efficient way to find them.
[originally from svn r5682]
Diffstat (limited to 'puzzles.but')
| -rw-r--r-- | puzzles.but | 51 |
1 files changed, 40 insertions, 11 deletions
diff --git a/puzzles.but b/puzzles.but index 8e99a31..8d592b5 100644 --- a/puzzles.but +++ b/puzzles.but @@ -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} |