nonogram-rs
A fast and lightweight nonogram solving library.
Features:
- Solving regular puzzles
- Solving colored puzzles (with arbitrary color type)
- Finding all solutions to a puzzle
- Multithreading using rayon
- De/serializing using serde (requires
serde
feature)
Examples of how to use this library can be found in the tests/
directory.
Command-line interface
This library includes a CLI called nonogram-cli
as a binary target.
cargo build --bin nonogram-cli --features='cli'
# Solve
cat layout.json | ./nonogram-cli solve > result.json
# Show
cat result.json | ./nonogram-cli show
# Both in one line
cat layout.json | ./nonogram-cli solve | ./nonogram-cli show
Example layout
Example result
Result
Colors
The following colors are supported by the CLI. Lowercase letters are dark and uppercase letters are bright colors. Note that the library supports arbitrary color types.
Key | Color | Key | Color | Key | Color |
---|---|---|---|---|---|
! | default | R | red | r | dark red |
0 | black | G | green | g | dark green |
1 | dark grey | Y | yellow | y | dark yellow |
2 | grey | B | blue | b | dark blue |
3 | white | M | magenta | m | dark magenta |
C | cyan | c | dark cyan |
Algorithm
The algorithm is explained in detail in a separate document.
License
This software (including the complete source code) is licensed under the GPLv3.