#puzzle #puzzle-solver #nonogram #color-space #solver

bin+lib nonogram-rs

一个快速且轻量级的非ogram求解库

9 个稳定版本

2.2.3 2023年1月4日
2.2.1 2023年1月3日
2.2.0 2022年12月31日
2.0.0 2022年5月21日
1.0.1 2022年1月6日

#2 in #nonogram

29 每月下载量

GPL-3.0-or-later

70KB
2K SLoC

nonogram-rs

一个快速且轻量级的非ogram求解库。

特性

  • 解决常规谜题
  • 解决彩色谜题(具有任意颜色类型)
  • 找到谜题的所有解决方案
  • 使用 rayon 实现多线程
  • 使用 serde 进行反序列化和序列化(需要 serde 功能)

如何使用此库的示例可以在 tests/ 目录中找到。

命令行界面

此库包含一个名为 nonogram-cli 的 CLI,作为二进制目标。

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

示例布局

{
  "cols": [
    [["y", 1], ["y", 1]],
    [["r", 3]],
    [["r", 1]]
  ],
  "rows": [
    [["y", 1], ["r", 1]],
    [["r", 1]],
    [["y", 1], ["r", 2]]
  ]
}

示例结果

[
  [
    [{"Box":{"color":"y"}}, {"Box":{"color":"r"}}, "Space"],
    ["Space",               {"Box":{"color":"r"}}, "Space"],
    [{"Box":{"color":"y"}}, {"Box":{"color":"r"}}, {"Box":{"color":"r"}}]
  ]
]

结果

颜色

CLI 支持以下颜色。小写字母是深色,大写字母是亮色。请注意,库支持任意颜色类型。

颜色 颜色 颜色
! 默认 R 红色 r 深红色
0 黑色 G 绿色 g 深绿色
1 深灰色 Y 黄色 y 深黄色
2 灰色 B 蓝色 b 深蓝色
3 白色 M 洋红色 m 深洋红色
C 青色 c 深青色

算法

算法的详细说明可以在一个单独的文档中找到。

许可证

此软件(包括完整的源代码)受 GPLv3 许可。

依赖项

~1–10MB
~92K SLoC