Provided by: sudoku_1.0.5-2build2_amd64 bug

NAME

       sudoku - sudoku board game

SYNOPSIS

       (play the game)
              sudoku [options] ...  [<filename>]

       (generate boards)
              sudoku -g [<num>] [options] ...

       (solve boards)
              sudoku -v [options] ...

       (calculate statistics)
              sudoku -s [options] ...

DESCRIPTION

       The sudoku board game is played on a 9x9 grid, divided into rows, columns, and 9 blocks of
       3x3 squares. The objective is to fill the empty squares with the digits 1-9, so that  each
       row,  column, and block contains each of the digits 1-9 (and hence, it is not possible for
       any digit to appear twice in the same row, column or block).

EXAMPLE

       Consider the following board, and the squares marked `a'-`h' and `x':

         5 . a | 6 b 1 | . . .       The digits appearing in each of the
         7 9 . | . . . | c 6 8       squares `a'-`h' can be uniquely
         d 3 . | . 8 . | 7 . .       determined. For example, the value
        -------+-------+-------      at `a' must be 8, since an 8 appears
         . 5 . | 4 1 e | . . 2       in the other rows and columns of the
         . . 1 | f x . | 6 . .       block. Using similar logic, it must
         8 . . | . 3 7 | . 4 .       be true that:
        -------+-------+-------           b = 7        f = 8
         . . 4 | . 9 . | g 2 .            c = 1        g = 8
         2 8 h | . . . | . 9 7            d = 1        h = 5
         . . . | 5 i 8 | . . 6            e = 6        i = 2

       In contrast, it is not possible to uniquely determine the value  of  `x'  with  the  given
       information - it could take either the value 2 or 5.
       The board now contains the squares:

         5 . 8 | 6 7 1 | . . .    It is now possible to determine the values
         7 9 . | . . . | 1 6 8    appearing in other empty squares.
         1 3 . | . 8 . | 7 . .
        -------+-------+-------
         . 5 . | 4 1 6 | . . 2
         . . 1 | 8 x . | 6 . .    <<< the value of x must now be 5.
         8 . . | . 3 7 | . 4 .
        -------+-------+-------
         . . 4 | . 9 . | 8 2 .
         2 8 5 | . . . | . 9 7
         . . . | 5 2 8 | . . 6

       Repeating this process a few more times reveals the solution:

         5 4 8 | 6 7 1 | 2 3 9
         7 9 2 | 3 4 5 | 1 6 8
         1 3 6 | 9 8 2 | 7 5 4
        -------+-------+-------
         3 5 7 | 4 1 6 | 9 8 2
         4 2 1 | 8 5 9 | 6 7 3
         8 6 9 | 2 3 7 | 5 4 1
        -------+-------+-------
         6 1 4 | 7 9 3 | 8 2 5
         2 8 5 | 1 6 4 | 3 9 7
         9 7 3 | 5 2 8 | 4 1 6

GAME INTERFACE

       The  sudoku  game  has a simple text interface (using the curses(3) library). The board is
       displayed in the middle of the screen, along with a summary of the  allowed  key  presses.
       The  cursor  can  be  moved  around  the  board using the arrow keys or the standard vi(1)
       movement keys, and each square (except for the fixed  board  squares  that  are  initially
       revealed) can be set to a given digit by pressing the corresponding number key, or cleared
       by pressing either the `0' or `.'  keys.

   Generating a New Board
       A new board can be generated at any time by pressing the `n' key, and either  a  precanned
       or randomly generated board will be displayed.  If the -n command line option is set, then
       only precanned boards will be displayed.

   Entering a Custom Board
       A custom board (e.g. found on the internet, or published in a newspaper)  can  be  entered
       into  the  game  by  first  clearing  the  current board (press the `c' key), entering the
       published squares (using the cursor motion keys and entering the appropriate numbers), and
       then  fixing  the squares by pressing the `f' key. At this point, the entered squares will
       be fixed (and cannot be changed).

   Hints
       The interactive game provides a simple hint mechanism to provide assistance in solving the
       board.  It  attempts  to highlight areas of the board where moves can be made. If repeated
       hints are requested, the system starts revealing the digit  that  can  be  placed  on  the
       board.

       A new hint can be requested by pressing the `?' key.

       Often the hints can be quite cryptic. For example, consider the board below:

           v v v

           . . 7 | . . 9 | . . .
           9 . 6 | 7 4 . | . 1 5
           . . 2 | 5 1 . | . . .
          -------+-------+-------
        >  6 . 5 | . 7 . | . . 8  <    The characters ><v^ highlight the
        >  . 7 . | . . . | . 3 .  <    area of the hint
        >  8 . . | . . . | 7 . 6  <
          -------+-------+-------
           . . . | . 6 7 | 8 . .
           7 4 . | . 5 . | 9 6 2
           . 6 . | 4 . . | . . .

           ^ ^ ^

       The  system  gives  the  hint `try the digit 3', but it is certainly not obvious, with the
       revealed squares, where the 3 goes.

OPTIONS

       -c<class>
              Generate a board until it finds a board of the specified class.  Supported  classes
              are: very easy, easy, medium, hard, and fiendish.

       -d     Describe  the  moves needed to solve the board. Can only be used with the -v option
              for solving precanned boards.

       -f<format>
              Set output format. The supported formats are:
                  standard    Default text format; std is a shortcut.
                  compact     Compact text format.
                  csv         Comma separated values, suitable for importing
                                    into a spreadsheet.
                  postscript  ps is a shortcut.
                  html        Simple HTML.

       -g[<num>]
              Generate <num> boards (or just 1  board,  if  not  specified)  and  write  them  to
              standard output.

       -n     No  random  boards generated in the interactive game. Requires the optional file of
              precanned boards to be specified.

       -r     Run in restricted mode, disallowing any games to be saved.

       -s     Calculate statistics  for  the  precanned  boards,  and  attempt  to  classify  the
              difficulty of solving the boards. Can be used with the -v option.

       -t<filename>
              Set the template file. The file set on the command line will be used instead of the
              default template file.

       -v     Solve precanned boards, writing the solution to standard output.

       <filename>
              Name of the optional file containing precanned boards.

       -w     Write default template to the working directory if it doesn't exist yet.

ENVIRONMENT

       No environment variables are used directly by the sudoku program.

FILES

       /usr/share/sudoku/template
              Template file for generating new sudoku boards.

       /usr/share/sudoku/precanned
              Optional file, containing `precanned' sudoku boards.

FILE FORMATS

   /usr/share/sudoku/template
       The template file contains a sequence of patterns that are used for generating new  sudoku
       boards.  Each pattern is started by a line with a leading `%' character, and consists of 9
       lines of 9 characters. The character `.' represents a square that is initially blank,  and
       the character `*' represents a square with a digit that is initially displayed.

   Compact text format
       This  format is similar to that of the template file, but contains representations of game
       boards. Each board is started by a line with a  leading  `%'  character,  followed  by  an
       optional  title  for the board that is displayed when the game is played. This is followed
       by 9 lines of 9 characters, where the character `.' represents an initially empty  square,
       and  the  characters  `1'-`9'  give  the  value  of a fixed board square that is initially
       displayed. The sudoku program can read precanned files in this format, and will write them
       when the -fcompact option is set.

   Standard text format
       This format is very similar to the compact text format, but includes additional characters
       to delimit the blocks in the board. The sudoku program can read precanned  files  in  this
       format, and writes them by default, unless another output format is set by the -f option.

   Comma separated text format
       This  format  is useful for importing sudoku boards into a spreadsheet. It represents each
       board by 9 lines of comma separated fields. Each field is blank, or contains a digit.  The
       sudoku  program cannot read precanned files in this format, and writes them when the -fcsv
       option is set. Unlike the standard or compact text formats, there are no lines  separating
       boards, and hence, it is really only feasible to store one board per file.

   Postscript format
       This  format  is  useful  for  printing  out sudoku boards. The sudoku program cannot read
       boards stored in this format, and writes them when the -fpostscript option is set.  Unlike
       the  standard  or compact text formats, it is not possible to store multiple boards in the
       same file.

   HTML format
       This format is useful for printing out sudoku  boards.  The  sudoku  program  cannot  read
       boards  stored  in  this format, and writes them when the -fhtml option is set. Unlike the
       standard or compact text formats, it is not possible to store multiple boards in the  same
       file.

SEE ALSO

       There  are  a  large  number  of websites dedicated to the sudoku puzzle that can be found
       easily using a search engine.  Some of  these  sites  provide  game  boards  that  can  be
       challenging to solve, and others provide strategies for finding moves.

DIAGNOSTICS

       There are limited diagnostics available when an error occurs.

ACKNOWLEDGEMENTS

       Mark  Foreman  for  the HTML output format; Joanna Ferris and Heather for encouraging this
       endeavour.

AUTHOR

       Michael Kennett (mike@laurasia.com.au)

COPYRIGHT

       This manual page, and all associated files, have been placed into  the  public  domain  by
       Michael  Kennett,  July  2005.  They  may  be  used by anybody for any purpose whatsoever,
       however NO WARRANTY, of any sort, applies to this work.

                                                                                        SUDOKU(6)