2个版本

0.1.1 2023年11月24日
0.1.0 2023年11月24日

#1096 in 游戏开发

MIT许可证

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