enxio27 wrote:
How do you generate the lists of required techniques for your puzzles?
You want me to reveal one of my [many] deep(est) secrets!
Isn't the answer pretty obvious? I use a solver, mostly JSudoku!
Here the g(l)ory details:
- JSudoku is set up to apply its solver routines in the sequence shown here: http://www.rcbroughton.co.uk/sudoku/forum/viewtopic.php?p=102#p102
Here in the file PuzzleGeneration_JSudoku_Default_SolversSequence.xml you can find this sequence.
Download it and load it into JSudoku by right-clicking in the (tab) Solvers window and select "Import Solver's List..." - In Jsudoku's Options menu "Log Naked Singles" and "Log Hidden Singles" are turned OFF.
In the Options menu only the following three items are actually turned ON:- Pencil Marks in all Cells
- Solve all Naked Singles after Deduce
- Update Combinations after Solve
- I paste the puzzle into JSudoku and let JSudoku solve it (Ctrl+Shift+D).
- From the (tab) Log I copy all the advanced techniques used (>= X-Wing) to a separate Notepad or Notepad++ window.
(I normally use a PC with two 1600x1200 [20"] monitors. To be upgraded to three 2560x1600 [30"] monitors) - I paste the puzzle into JSudoku again and do single step solve (Ctrl+D) until the first advanced technique is deployed and then undo it (Ctrl+Z).
. - By studying the state of the puzzle (pencil marks and solved cells), the log from step 3 and the copy of the advanced techniques in the Notepad window, I determine the most advanced technique (the one furthest down on the list of solver routines from step 1) that actually advances the puzzle at this point.
If in a subsection of the log several advanced techniques are listed after one another in descending order, the last one is normally a pretty good choice.
The other ones are Red Herrings. - I resume single step solve (Ctrl+D) until the next advanced technique is deployed and then undo it (Ctrl+Z).
. - Steps 6 and 7 are repeated until the puzzle is solved.
All the advanced techniques not used (Red Herrings) are removed from the list in the separate Notepad or Notepad++ window.
. - In JSudoku's Solvers window I sometimes temporary move more advanced techniques upwards to speed up the process (steps 6 and 7).
- I paste the puzzle into JSudoku again and verify (finalize) the list of advanced techniques required to solve the puzzle.
Sometimes the list of advanced techniques required can be further reduced or I have left a required technique out. - Again (fourth time) I paste the puzzle into JSudoku and do do single step solve. Now I deploy each advanced technique (from the finalized list) as early as possible.
This eliminates many, but not all, unnecessary N/H-Subsets and Intersections. - The final list of required techniques is produced.
The below Clueless Explosion puzzle (actually RCE #54C) is a good example. Step 3 produces the following list of "Techniques used":
396 Naked Single
118 Hidden Single
62 Intersection
5 Naked Pair
4 Naked Triplet
2 X-Wing
1 Skyscraper
2 Two String Kite
5 Empty Rectangle
1 Turbot Fish
To solve the puzzle, "only" the following techniques are actually required:
391 Naked Single
123 Hidden Single
52 Intersection
3 Naked Pair
1 Intergrid Turbot Fish
Regular Clueless Explosion 54C (Master)Rating based on required solving techniques: Extra Hard
090540010000000009407000060002096001000007006070400000700900003000000000000108704
000050000500007000070008564308010045000000008100000000039000000001300600700400382
000008006000004000001760040000000009500000000004070602600307000000900008090000760
510300200000007400600090080309700000001003000000000730150630009000500002803000001
001050000600308000080000600000000010004009000130000005500900760008001000000205008
000000000000400001906100502000300000600001005300042710100700000009000000860094120
004010000000000000001085307000000605900000000008050009700000090000504000209070064
900000400000006000600840053000002590000000000503760080010208030209600801000003000
106000005000105006500000008000073002304000600900010000000054060008000009630900020
_________________
Quis custodiet ipsos custodes?
Normal: [D Y-m-d, G:i] PM->email: [D, d M Y H:i:s]