All scripts in this directory use a simple text board format, consisting of one line for each row, with the digits 1 through 9 representing values, and either 0 or '-' representing a blank cell. In general, cells must be separated by blanks. Extra blanks are ignored, as are blank lines and lines beginning with '#'. This directory contains the following Perl scripts: ** build_sudoku -- Script for constructing a new Sudoku board. This uses the solve_sudoku script to analyze the partially built boards as it goes, and determine what values are legal for each cell. ** build_sudoku_to_spec -- Script which runs build_sudoku repeatedly (and in several instances, in parallel) until it produces a board with the desired characteristics, which are set by command arguments. The output is raw text; use make_sudoku_board to convert it to a form which can be printed. ** find_sudoku_errors -- If you really mess up a board, and you want back up and try again, use this. It takes two arguments: The file name of the initial board, and the file name of the partially solved thing you've messed up. When run, it tells you each cell where the partial solution is *wrong*. It doesn't print anything else (like, the solution) so you can white out the mistakes and try again. (Obviously you have to type in both the starting board and the partial solution, if the sudoku was from a book or newspaper, but that's easy enough to do, compared with figuring out where your mistakes were by trial and error!) Internally, this runs the solver script on the initial board, and then compares the results with the partial board. ** make_sudoku_board -- Script to read a raw text board layout and emit a .svg file for that board. ** score_puzzle -- Run the solver on a puzzle and extract the difficulty level information into an easy to read form. This does not print the solution to the board. ** solve_sudoku -- Solver for sudoku puzzles. It normally runs in several passes, in order to provide a reasonable estimate of how difficult the puzzle was to solve. It also has some features for partially solving boards or for just determining the initial possibilities; these are used by the board builder (which calls this script, often many times, in the course of building a board). In addition, it contains a number of blank boards and patterns which are for use with the scripts: blank-board.txt -- Totally blank, used as a seed board for the generator blank-sudoku-2-X.svg -- Used by make_sudoku_board to construct the svg file. Patterns, used for building a board with values in a specific layout: pattern-blank-rows-3.txt pattern-blank-rows.txt pattern-four-corners-5.txt pattern-four-corners.txt pattern-slashes.txt And last but not least, the md5sums for all files in this directory are here in the file "md5sums".