We like Sudokus because they test our capacity to recognize and interpret patterns. But how are the clues generated? Where do those quasi-symmetrical configurations come from? When the author explored the Web to find out, he discovered that there were many sites that explained how to solve Sudokus, but none that told him how create them. He also saw many sites and apps to play Sudoku, but, perhaps not surprising, no indication of how they worked.
So, he had to develop his own applications in order to find out. And, from the very start, he decided that he would publish the code for anyone else to use and perhaps tinker with, but the author wrote it in such a way that also lets readers with limited knowledge of programming techniques understand it. In fact, you could decide to start generating thousands of puzzles almost immediately, and go through the explanations of algorithms and techniques later, a bit at a time. The author chose to write the application in 'plain old C' because he wanted to make the code accessible to as many people as possible.
In this book, you will find an explanation of all solving strategies, and the code to implement them. Writing the Solver application was more difficult than writing the Generator, because it required designing and implementing each strategy separately. However, the author wanted to include a solving program capable of listing the strategies necessary to solve any particular puzzle. He also wanted to check whether a puzzle was solvable analytically, without any guessing.
This book includes the full listings of both the Generator and the Solver, and explanations of all C modules, with walk-throughs and examples.
- Verlag: Apress / Springer, Berlin
- Artikelnr. des Verlages: 978-1-4842-0996-7
- 1st ed
- Seitenzahl: 300
- Erscheinungstermin: 11. März 2015
- Abmessung: 254mm x 178mm x 16mm
- Gewicht: 572g
- ISBN-13: 9781484209967
- ISBN-10: 1484209966
- Artikelnr.: 42161037
2. The Strategies
3. Main Program and Utilities
4. Implementing 'unique'
5. Implementing 'naked' Strategies
6. Implementing 'hidden' Strategies
7. Implementing 'box-line'
8. Implementing 'pointing-line'
9. Implementing 'lines' Strategies
10. Implementing 'Y-wing'
11. Implementing 'XY-chain'
12. Implementing 'rectangle'
13. Implementing 'backtrack'
14. Solving Thousands of Puzzles
15. Generating Sudokus
16. Puzzle Statistics
18. Samurai Sudokus
A. Eclipse CDT
B. Puzzle Solutions
C. Abbreviations and Acronyms
D. Strategy Index