# Commits

committed bb3aa92

• Participants
• Parent commits 768b03f

# Files changed (2)

`-sudokulib is a collection of tools that are useful for generating solutions to `
`-Sudoku puzzles.  It uses a recursive backtracking algorithm (originally `
`-written by Jeremy Brown, Cel Destept), and is capable of generating a 3x3 `
`-Sudoku in ~0.015 seconds.  It can also generate 4x4 Sudokus in ~0.100 seconds `
`-(sometimes longer).`
`-`
`-Some 5x5 grids have been generated in a matter of seconds using this library, `
`-but I've also seen the program run for hours without successfully generating `
`-a 5x5.  Anything beyond 5x5 always seems to take a long time.`
`-`
`-You can solve Sudoku puzzles using this library by calling the ``init_grid`` `
`-method of an instance of ``Sudoku``.  This method takes two types of values. `
`-Where ``n`` is the grid size:`
`-`
`-* a 1-dimensional list with n^4 values`
`-* a multi-dimensional list with n^2 lists with n^2 values each.  Each list `
`-  represents a row in the grid`
`-`
`-The values in the list(s) provided to ``init_grid`` must be numeric and `
`-greater than 0 but less than n^2 in order to appear in the starting grid. Any `
`-other values will be ignored, and the puzzle will be solved with no `
`-consideration for such values.`
`-`
`-The library also provides utilities for generating starting grids, so you can `
`-play Sudoku instead of just generating solutions.  There are several difficulty `
`-levels to choose from.`
`-`
`-Also included in the distribution is a sample class for generating "jigsaw" `
`-variations of Sudoku.  This class will occasionally generate solvable grids `
`-within a second or two, but it takes much longer more often than not.`
`-`
`-Another variation of Sudoku, called Hyper Sudoku, can be found in hyper.py. `
`-This one involves four additional regions inside the grid.  See the entry `
`-for Sudoku on Wikipedia for an image of Hyper Sudoku.`
`-`

`+sudokulib is a collection of tools that are useful for generating solutions to `
`+Sudoku puzzles.  It uses a recursive backtracking algorithm (originally `
`+written by Jeremy Brown, Cel Destept), and is capable of generating a 3x3 `
`+Sudoku in ~0.015 seconds.  It can also generate 4x4 Sudokus in ~0.100 seconds `
`+(sometimes longer).`
`+`
`+Some 5x5 grids have been generated in a matter of seconds using this library, `
`+but I've also seen the program run for hours without successfully generating `
`+a 5x5.  Anything beyond 5x5 always seems to take a long time.`
`+`
`+You can solve Sudoku puzzles using this library by calling the ``init_grid`` `
`+method of an instance of ``Sudoku``.  This method takes two types of values. `
`+Where ``n`` is the grid size:`
`+`
`+* a 1-dimensional list with n^4 values`
`+* a multi-dimensional list with n^2 lists with n^2 values each.  Each list `
`+  represents a row in the grid`
`+`
`+The values in the list(s) provided to ``init_grid`` must be numeric and `
`+greater than 0 but less than n^2 in order to appear in the starting grid. Any `
`+other values will be ignored, and the puzzle will be solved with no `
`+consideration for such values.`
`+`
`+The library also provides utilities for generating starting grids, so you can `
`+play Sudoku instead of just generating solutions.  There are several difficulty `
`+levels to choose from.`
`+`
`+Also included in the distribution is a sample class for generating "jigsaw" `
`+variations of Sudoku.  This class will occasionally generate solvable grids `
`+within a second or two, but it takes much longer more often than not.`
`+`
`+Another variation of Sudoku, called Hyper Sudoku, can be found in hyper.py. `
`+This one involves four additional regions inside the grid.  See the entry `
`+for Sudoku on Wikipedia for an image of Hyper Sudoku.`
`+`