Skip to content

Latest commit

 

History

History
executable file
·
45 lines (37 loc) · 1.38 KB

README.md

File metadata and controls

executable file
·
45 lines (37 loc) · 1.38 KB

sudoku

This is a ConTeXt port of a famous sudoku solver by Peter Norvig. It provides five commands, as well as a command handler:

  1. \sudoku typesets a sudoku if valid.
  2. \sudokufile typesets a sudoku from a file if valid.
  3. \solvesudoku solves a sudoku if valid.
  4. \solvesudokufile solves a sudoku from a file if valid.
  5. \randomsudoku creates a random, unsolved sudoku.
  6. \sudokubuffer typesets a sudoku from a buffer.
  7. \solvesudokubuffer solves a sudoku from a buffer if valid.
  8. \setupsudoku is the command handler for commands above.

\setupsudoku understands the following parameters:

\setupsudoku
    [size=2em,
     align={middle,lohi},
     evenbackground=color,
     oddbackground=color,
     evenbackgroundcolor=darkred,
     oddbackgroundcolor=darkblue,
     n=17] % for random sudokus

As you might notice, sudokus are just TABLE's in disguise, but only certain parameters are passed in order to enforce constraints and keep a sudoku in square shape.

If an invalid sudoku or sudoku file is provided, a placeholder with an error message is printed instead. To change message errors, set something like this:

\setupsudoku
    [placeholdercommand=\inframed,
     placeholderlabela=First error,
     placeholderlabelb=Second error,
     placeholderlabelc=Third error,
     placeholderlabeld=Number too low]

For actual examples, check t-sudoku.mkvi.