First version is up

The first version of my Sudoku program is up and the link to download it is shown at the right of the page.

I first tried hosting it at sourceforge but it requires approval and a detailed description of my project. I have no idea how long the approval will take and so I hosted the program at mediafire instead as it's the first result from google when I type file hosting. If you know of a better place, let me know.

Sudoku Strategy - Singles(Hidden Single)

See cross hatching and squeezing.

Sudoku strategy - Singles(Last Digit)

Last digit happens when there is only one instance of a number missing from the whole grid and the missing instance has only one cell to go to.

For instance, consider the figure above. The number 7 has been solved in 8 boxes and is only missing one instance. The missing 7 can only go into R8C8.

Sudoku strategy - Singles(Full House)

A house is a group of 9 cells which must contain all the numbers from 1 to 9, i.e a house can be a row, a column or a box.

A full house is such a group of 9 cells with one unsolved cell.


The figure above shows an example of a full house with a box with one unsolved cell. The missing number 9 is the solution to the unsolved cell.

For the program, the sole candidate method is sufficient to find any full house and so there is no need to implement extra methods for this strategy.

Sudoku strategy - Singles(Sole Candidate)

Strictly speaking, sole candidate is not a strategy at all. First it requires you to maintain the possible values for each unsolved cell. If any cell has only 1 possible value, then that cell must
certainly take on the only possibly value.


For instance, for the box shown above, the small gray numbers in the unsolved cells represent the possible values. The number 6 is the sole candidate for the bottom left cell and thus is the solution to the unsolved cell.

Sole candidate is the most basic program method to solving Sudoku. My Sudoku program first scans the entire grid for sole candidates and if any is found, the cell is resolved and the possible values for each cell is updated for the affected row, column and box. Then the program looks again for sole candidate. Of course, it may reach a point where no more sole candidates can be found even though the puzzle is still unsolved. That's when more advanced methods are needed.