22 June, 2006

Sudoku

2005.12.07 - Original
I few weeks back my wife got hooked on solving Sudoku puzzles. Just for fun I am considering writing a program to solve the puzzles. Since I am trying to learn C#, this seems like a reasonable idea.

My first stop is to figure out what a Sudoku puzzle is. My first stop was the Sudoku entry on Wikipedia. Sudoku or Nanpure is a number placing puzzle.

The puzzle is most frequently a 9X9 grid, made up of 3X3 subgrids called "regions" (other terms include "boxes", "blocks", and the like when referring to the standard variation). Some cells already contain numbers, known as "givens" (or sometimes as "clues"). The goal is to fill in the empty cells, one number in each, so that each column, row, and region contains the numbers 1-9 exactly once. Each number in the solution therefore occurs only once in each of three "directions", hence the "single numbers" implied by the puzzle's name.


This seems simple enough. The wikipedia entry also includes some other interesting information including a method of solving the puzzle, some hints for programmers on how to solve the puzzles, the mathematics of Sudoku and finally some history.

My next stop is to figure out where can I find some puzzles and solutions to check my program against. I have come up with two possible sites. The first is www.sudoku.com and the other is www.websudoku.com.

What other resources can I come up with? I have stumbled across Sudoku Programmers which is a forum. There are mutliple posting that I will have to read soon. I have also come across Robert Burke's Weblog posting Sudoku Solver Web Service. Rob's web service will be good resource to check my solutions against.

This looks like it will be a fun project. My next step is to do a little more reading and to manually work a few puzzles.

2005.12.11 - Update
Today I tried my first Sudoku puzzle. I was able to completed it successfully in just under 22 minutes. The puzzle came from wedsudoku.com and it was rated as easy. I can now see why my wife really likes these puzzles. It takes a couple of different logical processes to solve a puzzle.

2005.12.12 - Update
Over at The Code Project I have found several articles on Sudoku:


2005.12.17 - Updated
Over at Rambles Weblog at starchamber.com there is a neat Sudoku Solving Assistant tool.

Over at The Code Project there is a new posting 'Sudoku Game in C#.' The posting looks interesting enough to warrant a closer look at the code.

Update - 2005.12.29
Found two more blog postings about Sudoku. The first is from the blog 'The Truth is Out There!' entitled 'Simple Sudoku.' The posting is about 'Simple Sudoku' a freeware puzzle maker and solver for Windows.

The second posting is from 'Business Week Online' entitled 'Sudoku: The Next Tetris?' This posting talks about the popularity of the game, link to Sudokupuzzlesonline.com and a link to Sudoku for smartphone.

2006.01.08 - Update
There is another Sudoku Solver over at Code Project.

2006.01.17 - Update
CodeProject has XSudokuWnd posting, a solver for the popular Sudoku puzzle, based on D.E. Knuth's Dancing Links algorithm.

2006.03.31 - Update
Seedmagazine.com has an article entitled 'MICROSCOPY AND THE ART OF SUDOKU.' It appears that Sudoku is having a larger impact on the world other then a fun time consuming mental puzzle.

2006.04.04 - Update
Not even Microsoft can resist the power of Sudoku. I found the article 'Microsoft Sudoku: Optimizing UMPC Applications for Touch and Ink' out on the MSDN site.

2006.04.21 - Update
Today I came across another site where you can play Sudoku for free call Sudoku Craving. If you like you can register with the site. By becoming a memeber the site will keep track of your stats for you.

2006.06.16 - Update
Over at the site Scanraid Ltd, I found several Sudoku related webpages.


Sahil Malik has posted his Sudoku Solver and the source code.

2006.06.22 - Update
Sudoku Combat allows two people to play Sudoku at the same time to see who can solve the puzzle first. You can challenge your friends or strangers.

No comments:

Challenging myself to learn something new

I have recently set a big challenge for myself. I want to know about Machine Learning . To add to the challenge, I am trying out usin...