一个骰子表达式解析 lib 。
表达式解析:
- 四则运算以及幂运算
- 基本骰子表达式( xDy )
- COC 规则(BPKQ)
- 无限规则
- 双重十字规则
- Fate 规则
解析结果解释运行:
- 投掷并运算结果
- 输出表达式字符串
- S 表达式输出
- 格式化输出中间执行过程
Diro-py:
- 解析表达式
- 解释计算结果
-
格式化输出中间执行过程
最基本的骰子表达式为 xDy, x 表示骰子个数, y 为骰子面数, 二者的取值范围为 u16。
骰子表达式大小写不敏感,不允许存在空格间隔。
COC 扩展规则可以在基础骰子表达式前后添加额外参数,可接受的参数有:
- b: 奖励骰
- p: 惩罚骰
- k: 取大骰
- q: 取小骰
奖励骰与惩罚骰仅对 D100 有效,取数骰仅在多个骰子时有效(当取数大于骰子数时,会在表达式解析阶段报错)。
额外参数可选跟随一个无符号数字表示骰子个数,当存在多个同类型额外参数,骰子个数为叠加计算结果。
例子:
b2bd100p
: 奖励骰个数为 2+1-1=2 的 D100 骰子k2d6
: 将会在解析阶段报错,数字默认左结合,正确的写法应为2d6k
OneDice: Today, we stand as one. (with some distance 2333)