2 个版本 (1 个稳定版)
1.0.0 | 2023 年 5 月 10 日 |
---|---|
0.1.0 | 2023 年 4 月 28 日 |
#7 in #dice-roller
每月下载 21 次
15KB
299 行
ndice
掷一个
n
icedice
(或[n|d]ice
?)
目录
关于
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_dices
和 ndice::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 的示例实现。
贡献
我们欢迎各种形式的贡献。
从哪里开始?
以下是一些开始的地方
- 带有标签 Good first issue 的问题
- 带有标签 Documentation 的问题
- 提供示例实现或使用演示
工具
- 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