2 个版本 (1 个稳定版)

1.0.0 2023 年 5 月 10 日
0.1.0 2023 年 4 月 28 日

#7 in #dice-roller

每月下载 21

MIT 许可证

15KB
299

ndice

掷一个 nice dice(或 [n|d]ice?)

Header image

目录

关于

ndice 是一个命令行骰子掷骰工具和骰子掷骰库。

骰子格式为 ${number}${exploding}d{$sides},例如 1d6 表示 1 个六面骰子。面数没有限制,因此可以掷出非存在的骰子,如 1d13

  • 每个空格分隔的参数计为一个骰子符号。
  • 骰子可以混合使用,所以 ndice 1d6 2d8 4d10 是有效的。
  • 无效的参数将被忽略。

安装

⬆️ 返回顶部

二进制文件

发布页面 下载预编译的二进制文件

Cargo

使用 cargo 安装

$ cargo install ndice

使用(CLI)

⬆️ 返回顶部

$ ndice [dice]

示例

# Roll 1 six-sided dice
$ ndice 1d6
Rolled: ["d6 => 1"]
Result: 1
# Roll 2 8 sided dice and 2 four sided dice
$ ndice 2d8 2d4
Rolled: ["d8 => 6", "d8 => 3", "d4 => 1", "d4 => 1"]
Result: 11

爆炸骰子

爆炸骰子是指当掷出最高可能值时重新掷骰子的骰子。

要掷爆炸骰子,请使用 ed 而不是 d 作为参数。

  • 1d6 -> 正常的六面骰子
  • 1ed6 -> 爆炸六面骰子

修正

可以将正数或负数修正添加到每个骰子上。

  • 1d6+2 -> 将 +2 添加到掷 d6 的结果中
  • 1d20-4 -> 从掷 d20 的结果中减去 4

使用(库)

ndice 可以用作库。

将库添加到 Cargo.toml

[dependencies]
ndice = 1.0

可以通过标志启用可选的 JSON 功能。

[dependencies]
ndice = { version = "1.0", features = ["json"] }

最后,调用两个函数:ndice::parse_dicesndice::roll_dices

fn my_func() {
  let args: Vec<String> = vec![String::from("1d6"), String::from("2d4"), String::from("1ed4")];
  let dice_in_hand = ndice::parse_dices(args).unwrap();
  let roll = ndice::roll_dices(dice_in_hand);
  println!("{}", roll);
}

请参阅 src/bin.rs 的示例实现。

贡献

⬆️ 返回顶部

我们欢迎各种形式的贡献。

从哪里开始?

以下是一些开始的地方

工具

  • mktoc 用于 README.md 中的目录生成(很棒!)

安装开发版本

有时安装 ndice 的特定版本很方便,可以使用以下命令完成

# install specific commit
cargo install --git https://github.com/KevinGimbel/ndice--force --rev $COMMIT_ID
# install branch
cargo install --git https://github.com/KevinGimbel/ndice--force --branch $BRANCH_NAME

许可证

⬆️ 返回顶部

MIT,请参阅 LICENSE 文件。

依赖关系

~2.4–3.5MB
~63K SLoC