Just read the rules for Sudoku.

You can develop your own program.

The rules pretty much give you the things you need to create your

algorithm.

start with the nice article at wikipedia

http://en.wikipedia.org/wiki/Sudoku

You could do it many ways, but consider multi-dimensional arrays or

something similar.

These correspond well to a grid. 3 x 3, each containing a 3 x 3 grid.

Make sure that any given row or column follows the rules.

You could get more creative to speed your generation times:

Generate first a list of the sub-grids, there is a finite number of

them. Label each one.

Perhaps use a label that is descriptive of the contents, very simply:

123456789, or 235149876

as an example if you read each subgrid from left to right, starting

in the top right

another method would be to give each combination of 3 digits from 1-9

some sort of symbolic label.

Then assign 6 of these to each sub grid (3 horizontal, 3 vertical)

Anyway, once you have each sub-grid it becomes very simple to develop

matching/not matching combinations.

Now the hard part is deciding which numbers to reveal or leave hidden

and yet keep the puzzle solveable!