#dice #string #parser #dragon #convert #quantity #single

bin+lib dicey

一个简单的库,用于解析形如 "adx,bdy,cdz" 的骰子字符串,其中 a, b, & c 是骰子的数量,x, y, & z 是这些骰子的面数;例如,5d6 表示 5 个六面的骰子,如 Yahtzee 游戏中的情况。

3 个稳定版本

1.1.0 2021 年 9 月 11 日
1.0.1 2021 年 9 月 11 日

#1424游戏开发

MIT 许可证

8KB
138

Dicey

Dicey 是一个简单的库,用于解析桌面游戏中可能遇到的骰子字符串(例如,1d20、2d12、3d8)。

提供了一个结构体 DieRoll 和一个函数 parse(&str),该函数将输入字符串转换为 DieRolls 的列表。

用法

use dicey::parse;
use rand::*;

fn main() {
	if let Some(mut rolls) = parse("5d6") {
		if let Some(roll) = rolls.pop() {
			for _ in 0..roll.quantity {
				println!("{}", random::<u8>() % roll.faces + 1);
			}
		}
	}
}

还包含用于从骰子字符串模拟骰子投掷的命令行工具 dicey

示例

  • 抛硬币(正面 = 1,反面 = 2):dicey 1d2

  • Yahtzee:dicey 5d6

  • D&D 初始行动 & 储存投掷:dicey 1d20

  • Pathfinder 魔法飞弹伤害:dicey 1d4+1

  • 各种带加成和减损的骰子:dicey 1d4,2d6+1,3d8-2

依赖项

~305KB