1 个不稳定版本
0.1.0 | 2023 年 10 月 27 日 |
---|
719 在 游戏 中
17KB
375 行
数独
一个简单的 Rust 编写数独求解回溯算法。
用法
cargo run --release -- "csv_path"
其中 csv_path 是包含数独谜题的 csv 文件的路径。例如
0,7,3,8,0,4,2,1,6
0,0,0,2,0,9,5,0,0
2,8,5,6,0,3,0,9,7
0,0,0,3,0,0,0,7,4
7,5,0,0,0,0,3,0,1
0,0,4,0,2,0,0,0,0
0,9,7,5,6,0,0,0,0
0,0,0,7,0,0,1,0,0
4,2,0,0,3,0,0,6,0
特性
1 - 栈只
所有数据结构都存在于栈上。不使用哈希表或哈希集(它们使用堆内存)。这是为了提高速度。
2 - 最小化克隆
在内存中修改单个棋盘,而不是在回溯期间写入和存储克隆的棋盘。
3 - csv 反序列化
可以使用 csv 文件来表示数独谜题。csv 文件必须是 9x9 的数字网格。空单元格由 0 表示。
4 - 美化打印
完成的数独谜题将被美化打印到终端。
5 - 错误处理
如果 csv 文件不是 9x9 的数字网格,程序将崩溃。如果谜题无法解决,它也会崩溃。它将打印有用的错误信息。
6 - 文档字符串
在代码中添加了一些文档字符串和示例!
依赖项
~2.4–3.5MB
~52K SLoC