#数独 #数独求解器 #娱乐 #游戏 #终端

bin+lib newdoku

一个用于在符合 ANSI 标准的终端中显示和解决数独的小型库

9 个版本 (5 个重大变更)

0.6.1 2022年7月21日
0.6.0 2022年7月21日
0.5.0 2022年6月20日
0.4.2 2022年6月10日
0.1.0 2022年5月30日

#501 in 游戏

MIT 许可证

18KB
353

Newdoku | docs.rs

用 Rust 编写的简单数独求解器。该方法灵感来源于我在一次计算机科学讲座中简要概述的方法,我决定仅根据我对讲座的理解来尝试实现。

称为 Newdoku,因为我很久以前开始做这个,然后忘记了,决定重新开始,因此称为 "New"。

快速入门

[dependencies]
newdoku = { version = "0.6", default-features = false }
use newdoku::Sudoku;

fn main() {
    let s = Sudoku::from_str(
        "xxxxxxx9xx9x7xx21xxx4x9xxxxx1xxx8xxx7xx42xxx5xx8xxxx748x1xxxx4xxxxxxxxxxxx9613xxx",
    )
    .unwrap();

    println!("{}\n\n{}", s, s.solution(0, false).unwrap());
}

更多信息请参阅 文档

二进制文件

从源代码

$ git clone https://github.com/Piturnah/newdoku
$ cd newdoku
$ cargo run

从 crates.io

$ cargo install newdoku
$ newdoku

选项

OPTIONS:
    -f, --file <FILE>    Load Sudoku from file
    -h, --help           Print help information
    -q, --quiet          No output until finished solving (faster)
    -s, --step <STEP>    Wait STEP millis between inserts [default: 0]
    -u, --uid <UID>      Load Sudoku by unique ID

在从文件加载时,解析器将任何数字解析为数独中的数字。除换行符以外的任何其他字符都将解析为空方格。

示例数独:xxxxxxx9xx9x7xx21xxx4x9xxxxx1xxx8xxx7xx42xxx5xx8xxxx748x1xxxx4xxxxxxxxxxxx9613xxx

生成

+-------+-------+-------+
| . . . | . . . | . 9 . |
| . 9 . | 7 . . | 2 1 . |
| . . 4 | . 9 . | . . . |
+-------+-------+-------+
| . 1 . | . . 8 | . . . |
| 7 . . | 4 2 . | . . 5 |
| . . 8 | . . . | . 7 4 |
+-------+-------+-------+
| 8 . 1 | . . . | . 4 . |
| . . . | . . . | . . . |
| . . 9 | 6 1 3 | . . . |
+-------+-------+-------+

贡献

欢迎 PR 和问题。

依赖项

~4–12MB
~133K SLoC