summaryrefslogtreecommitdiff
path: root/macros/context/contrib/context-sudoku/README.md
blob: f9ffa7b04e0e564546091c52b54dd4fd68e0fc43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# sudoku

This is a ConTeXt port of a famous sudoku solver by Peter Norvig. It
provides four 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.
3. `\solvesudokufile` solves a sudoku from a file if valid.
5. `\setupsudoku` is the command handler for commands above.

`\setupsudoku` understands the following parameters:

```tex
\setupsudoku
    [size=2em,
     align={middle,lohi},
     evenbackground=color,
     oddbackground=color,
     evenbackgroundcolor=darkred,
     oddbackgroundcolor=darkblue]
```

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:

```tex
\setupsudoku
    [placeholdercommand=\inframed,
     placeholderlabela=First error,
     placeholderlabelb=Second error,
     placeholderlabelc=Third error]
```

For actual examples, check `t-sudoku.mkvi`.