2个版本
0.1.1 | 2022年4月20日 |
---|---|
0.1.0 | 2022年4月20日 |
#8 in #│
29KB
396 行(不包括注释)
binairo
关于
- 一个用于解决binairo(或takuzu https://en.wikipedia.org/wiki/Takuzu )谜题的命令行工具。
- 通过运行以下命令安装:
cargo install binairo
binairo规则
据我所知,目标是在一个NxN的二次方格中用1和0填充,使得
- 每行和每列中的1和0数量相等,并且
- 没有单元格中的数字与左右单元格或上下单元格相同。
命令
binairo
将读取两个参数。第一个是必需的
binairo<输入-文件-名称> <要打印的解决方案数量>
'input-file-name' 应该是定义起始板的文件(参见 ./examples 目录)
'要打印的解决方案数量' 默认为1
示例
编译
$ cargo build --release
Compiling binairo v0.1.0 (/home/davezwieback/rust_src/binairo)
Finished release [optimized] target(s) in 1.12s
并搜索示例中的第一个解决方案
$ ./target/release/binairo ./examples/6x6.cfg
Will read input file: ./examples/6x6.cfg
Starting for:
╔═══════════════════════╗
║ . │ 1 │ . │ . │ . │ . ║
║───┼───┼───┼───┼───┼───║
║ . │ . │ . │ . │ . │ 1 ║
║───┼───┼───┼───┼───┼───║
║ . │ . │ . │ 0 │ . │ . ║
║───┼───┼───┼───┼───┼───║
║ 0 │ . │ . │ 0 │ . │ . ║
║───┼───┼───┼───┼───┼───║
║ . │ . │ . │ . │ 1 │ . ║
║───┼───┼───┼───┼───┼───║
║ . │ 1 │ 1 │ . │ 1 │ . ║
╚═══════════════════════╝
Found 1 Solution(s):
╔═══════════════════════╗
║ 0 │ 1 │ 0 │ 1 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 1 │ 0 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 1 │ 0 ║
╚═══════════════════════╝
Time: 0.000047579 sec
搜索示例中的前5个解决方案(实际上只有3个)
$ ./target/release/binairo ./examples/10x10.cfg 5
Will read input file: ./examples/10x10.cfg
Starting for:
╔═══════════════════════════════════════╗
║ . │ . │ . │ . │ . │ . │ 1 │ 0 │ . │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ . │ 0 │ . │ . │ . │ . │ . │ . │ . │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ . │ . │ 1 │ . │ . │ 1 │ . │ 1 │ . │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ . │ 0 │ 1 │ 0 │ . │ 0 │ . │ . │ . │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ . │ 0 │ . │ . │ . │ . │ 0 │ . │ 1 │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ . │ . │ . │ . │ 0 │ . │ . │ 1 │ 1 │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ . │ . │ 0 │ . │ . │ . │ . │ . │ . │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ . │ . │ . │ . │ 0 │ 1 │ . │ . │ . │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ . │ 0 │ . │ 1 │ . │ . │ . │ . ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ . │ . │ . │ 1 │ . │ . │ . │ . │ 0 ║
╚═══════════════════════════════════════╝
Found 3 Solution(s):
╔═══════════════════════════════════════╗
║ 0 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 1 │ 0 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 0 │ 1 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 0 │ 0 │ 1 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 0 │ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 0 ║
╚═══════════════════════════════════════╝
╔═══════════════════════════════════════╗
║ 0 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 1 │ 0 │ 1 │ 0 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 0 │ 1 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 0 │ 0 │ 1 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 0 │ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 0 ║
╚═══════════════════════════════════════╝
╔═══════════════════════════════════════╗
║ 0 │ 1 │ 1 │ 0 │ 1 │ 0 │ 1 │ 0 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 0 │ 1 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 0 │ 0 │ 1 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 1 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 0 │ 0 │ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 0 │ 0 │ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 ║
║───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ 1 │ 1 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 0 ║
╚═══════════════════════════════════════╝
Time: 0.000597198 sec
问候
也要感谢所有参与rust、cargo、atom或任何crate开发的人。我真的很享受从中受益于这项伟大的工作。