Most Helpful Customer Reviews
31 of 31 people found the following review helpful:
4.0 out of 5 stars
A decent start, but does not deal with advanced strategies, March 31, 2006
This review is from: Programming Sudoku (Technology in Action) (Paperback)
This is a short, straight-forward book that shows the reader how to create a simple sudoku program for Windows. I read this book cover to cover in about 2 hours. It is a very practical introduction to programming a sudoku application in Visual Basic 2005 (I'm not sure what book the previous reviewer is referring to, as this one contains no C or Java code. Any competent C programmer could convert this code easily). The book walks through the creation of an interface, code to enforce the rules of the game (preventing illegal moves), a (limited) set of solving strategies, and an algorithm for creating new puzzles.
The biggest strength of the book is that it is very practical -- you can type in (or download) all the source code and you'll have a running application. Using Visual Basic makes it ideal for the beginner/intermediate programmer (of course you need VB 2005 -- previous versions won't work).
The biggest limitation is that the solver/puzzle generator only uses four basic strategies: Single Candidate (aka Naked Single), Hidden Singles, Matched Pairs (Twins), and Triplets. It also includes a brute force algorithm. The author presents the four strategies as if they represented all of the known solving algorithms. In reality, there are a variety of other, more complex strategies that are incorporated into good sudoku puzzles (a good place to start would be the Sudoku Programmer's Forum - http://www.setbb.com/phpbb/index.php?mforum=sudoku). When the aformentioned strategies fail, the program tries to find a brute force solution. While that may be fine for solving puzzles, it causes trouble when you want to create new puzzles. The puzzles created by the application's "Extremely Difficult" setting are not guaranteed to be unique. That is, puzzles at the other difficulty levels ("easy" through "difficult") each have a unique solution that can be discovered using up to only 4 solving strategies. Puzzles that are "Extremely Difficult" can be solved mostly by the existing (pretty simple) strategies combined with a number of squares that may be solvable by more advanced strategies or just by blind guessing, and they are likely not "True" sudoku puzzles because there is a good chance that they have multiple solutions.
I also have some minor quibbles with the overuse of strings to store game states, but the author does a good job of using them in an efficient fashion. There's also a chapter thrown in at the end describing the rules and some basic strategies for playing kakuro, the newer number puzzle that publishers are hoping will be as popular as sudoku. The chapter has no real relevance in the book, as it does not discuss computer implementions, and contains no particularly useful information.
In all, this is a good start for a moderately experienced VB hobbyist interested in creating a program that generates and solves (and lets users play) sudoku puzzles. The generated puzzles will either be easy to moderate, or will be a mixed bag.
My recommendation to someone who has a moderate level of VB programming experience, but perhaps doesn't know how to go about writing a sudoku program would be to use this book to create the basic program, then go to the Sudoku Programmer's Forum to learn about other strategies that they could implement in the program. If you have a decent understanding of VB and just want to mess with the code, you can download it for free from the publisher's web site at www.apress.com.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
7 of 7 people found the following review helpful:
5.0 out of 5 stars
Better than a Starter Kit, May 9, 2006
This review is from: Programming Sudoku (Technology in Action) (Paperback)
Microsoft has hung it's hat on 'starter kits' for Visual Basic .Net Express (2005) both as a learning tool and as a starting point for developers. However those who have tried to use them have found the examples to date to be buggy, hard to understand, excessively complicated and almost impossible for beginners to get to work. Sudoku would seem to be an ideal subject as one of these starter kits. However this book, with the downloadable code, is a much better option. The code works right off, and most of the basics are there. It will generate and solve puzzles. The solver uses 4 basic methods, and, if those fail, it goes to brute force.
This is not "Simple Sudoku" [...] That is a very sophisticated creator and solver with many additional functions built in. The program in this book is a junior version of that. However with the clear explanations of the code in this book and growing skills in VB .Net you can easily add extra functionality and solving methods as needed. Use "Simple Sudoku" to learn how to play Sudoku. Use this book and code to learn to program Sudoku.
This book would make an excellent introduction to Visual Basic .Net Express. It covers a number of useful techniques for a beginner. As a teacher, I am always looking for projects which are the right size and which are of interest to students. Not everything is covered in this book, however by adding one or two more projects, say an RSS reader with persistence, you have the basics of a good introductory course.
I recommend this book.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
4 of 4 people found the following review helpful:
3.0 out of 5 stars
Good, but could have had more math, September 4, 2006
This review is from: Programming Sudoku (Technology in Action) (Paperback)
This book does a good job of helping a person with
even minimal VisualBasic knowledge write what ends up
being an powerful Sudoku generator and solver. I was
able to get through the example program and understand
the source code with a minimal amount of exposure to
VB.
On the downside, a lot of the source in the book seems
to be redundant. Some of the later
examples--particularly the advanced parts of the
solver--seem as though they could have been better
modularized, making the code-writing less time
consuming. The math geek in me was also hoping for a
more in depth analysis of the different solving
algorithms and their various efficiencies.
If you enjoy Sudoku and want to build your own
solving/generation program, but really aren't
concerned with an in depth analysis of algorithms,
this is a good book.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|