|
|||||||||||||||||||||||||||||||||||
|
7 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
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,
By RC Karr (Washington, DC) - See all my reviews
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.
7 of 7 people found the following review helpful:
5.0 out of 5 stars
Better than a Starter Kit,
By Analyst "coconut55" (Blaine WA USA) - See all my reviews
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.
4 of 4 people found the following review helpful:
3.0 out of 5 stars
Good, but could have had more math,
By
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.
4 of 4 people found the following review helpful:
4.0 out of 5 stars
Programming Sudoku - a good book,
By Brian Webb "Brian" (Lake Forest, CA) - See all my reviews
This review is from: Programming Sudoku (Technology in Action) (Paperback)
Programming Sudoku (Technology in Action) (Paperback) by Wei-Meng Lee
This book teaches more than Sudoku, it covers the process of developing game logic development and intelligence. There are two games covered, Sudoku and Kakuro. Only Sudoku is covered as a step by step process on developing a game generator and solver. Kakuro, has enough information that a standard programmer should be able to build a generator and solver. The book is both informative and entertaining to read. When I was finished, I was very motivated to build my own variants. There is quite a bit of resistance to games built with .Net, specially VB.Net. This book does a great job in showing the power of VB.Net as a competitive platform outside of game development. The discussion on puzzle solving can be applied to any development language. Where this book has a short coming is that it does not cover other forms of logical puzzle solving. There are plenty of other methods not covered. An appendix of those, what they are, and what the benefits of them are, would have been a nice bonus. Over all, I liked this book.
1 of 1 people found the following review helpful:
5.0 out of 5 stars
Great intro book!,
By ajk251 (Rossford, OH) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: Programming Sudoku (Technology in Action) (Paperback)
Programming Sudoku is a great intro for those looking to get into developing, particularly with Visual Basic. Though the book is dated at this point - 2011, it is still a nice introduction to programming concepts that aren't found in other books, while only focusing on Sudoku. No, it is not a math-laden or algorithm heavy book, but rather a great starting point for more advanced concepts.
2 of 3 people found the following review helpful:
1.0 out of 5 stars
Superficial,
By
This review is from: Programming Sudoku (Technology in Action) (Paperback)
This book might be an interesting case study for a novice Visual Basic programmer -- it devotes a lot of ink to UI programming -- but for someone interested in algorithms for solving and generating sudoku puzzles, there's not much value here. Only the most elementary human-style solving techniques are discussed. The reduction to exact cover and the dancing links algorithm aren't discussed at all. The author's puzzle generation algorithm is not guaranteed to produce a valid sudoku puzzle (one with a unique solution) except for the easiest levels of difficulty. You'll learn more by surfing the web for a few hours (including visiting the Sudoku Programmers Forum) than you will by reading this book.
6 of 17 people found the following review helpful:
3.0 out of 5 stars
ok, but limited,
By
This review is from: Programming Sudoku (Technology in Action) (Paperback)
The main problem I see with this book is that the techniques presented are hard to transfer to non-game situations. The main reason is that VB.NET is not a suitable choice of language for this problem. When I first opened the book, I expected a book on resolution-based logic programming or finite domain logic constraint programming in VB.NET, using soduku as a concrete example, but instead found the programs to be too specific to use except with soduku and other similar games. The programs in this book solve the problem the way a human would solve the problem. This approach doesn't take advantage of the computer's ability to perform simple calculations extremely fast. Taking advantage of this often requires a different approach to the problem, and this book doesnt discuss it. The section on using brute force doesnt really come close to the finite domain constraint programming that is extermely well suited for this problem.
Part of the problem here is that VB.NET is entirely inappropriate for this type of problem. Prolog is far better suited for this problem than any imperative or object-oriented language. The choice of language is often the critical descision in programming. Make the wrong decision and a couple of pages of Prolog code suddenly becomes a book full of VB.NET code. If you want to learn how to solve soduku problems better (either with a computer program or with pencil and paper), then this book does just that. If you want to use what you learn from this book to apply to other domains, then it probably wont help too much. Buy an introductory book on Prolog instead. |
|
Most Helpful First | Newest First
|
|
Programming Sudoku (Technology in Action) by Wei Meng Lee (Paperback - March 17, 2006)
$24.99 $18.12
In Stock | ||