
Instructions

Foreword
Before you go any further, this program was written in javascript which is by nature slow, and further
handicapped by my amateur programming skills. If you have opened it in Microsoft Internet Explorer (IE), I recommend you
exit and reopen it in Google's Chrome, or second best Firefox. Chrome's javascript runs considerably faster than IE.
This program attempts to use pure logic to solve puzzles, using humanistic, interactive approach. The interface between logical
strategies and trialanderror (T&E) is very murky, and is the subject of considerable debate. Each of the methods used in this program has a
help page which will discuss the underlying logic. Included in the help pages is a large selection of examples
On the other hand, brute force / backtracking programs will solve any sudoku puzzle in moments. This is of course no use to someone who
wants to know how to solve the puzzle without guessing, but can be very useful when you need to see the answer to check where you went wrong. An
excellent such program is the Kudoku Sudoku solver. A recent addition to my solver is the
quick solve method which is a hybrid logic/backtracking method using patterns (aka templates). Most puzzles are
solved in less than a second, but a few with a large number of patterns will take a little longer. If there are multiple solutions, it will
tell you how many, or else it will say if there is no solution.
My interest in pursuing the logical approach to solving nontrivial sudoku's was initially set in motion by Andrew Stuart's excellent
book "the logic of sudoku" (MM Publishing Ltd 2007) as well as his online solver.
However, following on I encountered further books and web postings that seemed to require post doctoral qualifications in mathematics and
professional programming skills to understand. Despite my own scientific/medical background, I felt there had to be a clearer, simpler way.
I was inspired by the program Sudoku Explainer which allows each
step to be studied and understood. However it lacks ALSs and other newer techniques such as exocets and various rank zero logic approaches
(SK loops. multifish, etc).
To run program
 The rows and columns are numbered 1 to 9
 To start a new puzzle, either:
 paste or type 81 character puzzle, with "0" or "." for blanks into text box and click "Import" button.
 paste a "grid" into the output box and click "Import" button. This can be either a starting grid with dots for blank cells,
or a partially completed puzzle. Note that the only numbers present in these grids should be the puzzle numbers, so don't include row/column numbers.
 Then click "Start" button to populate blanks, and click "Next" button. It will execute naked and hidden singles eliminations firstly, and then look for a
boxline elimination. If successful, it will stop and display result. You then click the "Zap" button to execute eliminations. When you run out of boxline
eliminations, it looks for naked sets, then hidden sets. Keep clicking "Next" and then "Zap" buttons until puzzle is solved or a message box tells you that
there are no more basic eliminations. Every elimination achieved is displayed in output box.
 Alternatively, you can click "Clear basics" to finish with basic moves in one step.
 You can then run routines from the "Advanced" and "Other" sets in any order. If an elimination is made, the routines in the basic set
are checked before proceeding with further advanced methods. The order I have placed them in corresponds roughly with SE ratings, as demonstrated in the Top95
help file which shows SE ratings as well as the level required by my methods.
 If you wish to rerun a routine, click the 'Go back' button.
 If you wish to save a partially solved puzzle, click 'Save', and copy the string in the import box and paste it into a text file and
save it. To resume the puzzle, copy and paste it back into the box and click 'Import', and the puzzle is restored.
 Progress can be followed in the 'Remaining' box, ie the number of candidate numbers left in excess of 81.
 Partially completed puzzles can be exported by clicking the "Export" button, and the puzzle grid appears in standard format in the output box.
 By adding 3 numbers into the text box after the "Remove" button, and then clicking 'Remove', a number can be deleted, and the puzzle updated by running
the basic set of techniques. The first number is the candidate to be removed, and the next two are the address.
Feedback
Comments welcome: email me at pjbeeby@gmail.com
Acknowledgements
I am most grateful to all those who laboured away to set the foundation for solution techniques, and especially those recently who have produced a wealth of interesting
puzzles to test my solver on and to play with.
Philip Beeby


