2个版本
0.1.1 | 2023年11月24日 |
---|---|
0.1.0 | 2023年11月24日 |
#1096 in 游戏开发
33KB
747 行
evaluroll
Evaluroll是一款桌面游戏掷骰子评估器。它支持dice notation和基本算术,如roll20规范所述。它还支持保留和丢弃骰子,以及括号表达式。
它还支持将表达式解析成AST,可以用来多次评估表达式。
示例
将表达式解析成AST
let ast = evaluroll::parse("1d20")?;
评估AST
use evaluroll::Eval;
let ast = evaluroll::parse("1d20")?;
let mut rng = rand::thread_rng();
let output = ast.eval(&mut rng)?;
assert_eq!(1, output.rolls.len());
assert!((1..=20).contains(&output.total));
直接评估表达式
let mut rng = rand::thread_rng();
let output = evaluroll::eval(&mut rng, "1d20")?;
assert_eq!(1, output.rolls.len());
assert!((1..=20).contains(&output.total));
功能
Evaluroll具有以下功能
trace
:启用AST和解析器输出的跟踪。
许可证:MIT
依赖项
~290–455KB