python的统计骰子库

python-dice的Python项目详细描述


Python骰子logo

codecovblacklicense

python的统计骰子引擎

许可证

本作品以知识共享署名非商业共享4.0国际许可证授权 http://creativecommons.org/licenses/by-nc-sa/4.0/

安装

python -m pip install python_dice

来源于

https://github.com/markbrockettrobson/python_dice

用法

^{pr2}$
from python_dice import PythonDiceInterpreter

interpreter = PythonDiceInterpreter()
program = [
     "VAR a_name = d6 + 10",
     "VAR b_name = d6 - 10"
]
a_name = interpreter.max(program)["a_name"]
b_name = interpreter.min(program)["b_name"]
print(a_name, b_name)

> 16 -9
interpreter = python_dice_interpreter.PythonDiceInterpreter()
program = [
    "VAR save_roll = d20",
    "VAR burning_arch_damage = 10d6 + 10",
    "VAR pass_save = ( save_roll >= 10 ) ",
    "VAR damage_half_on_save = burning_arch_damage // (pass_save + 1)",
    "damage_half_on_save"
]
im = interpreter.get_histogram(program)
im.show()

image of 10d6 add 10 half round up if 1d20 greater than 10

语法

掷骰子
<number of dice to roll>d<number of sides on the dice>
4d10
d6
1d%
30dF
2d[1,1,2,3,5,8]

缺少的骰子数将被视为1。
边数也可以是:

  • %100英镑。在
  • F代表命运骰子[-1,0,1]。在
  • 自定义骰子,边值列表以逗号分隔,方括号在[]方括号中(允许尾随逗号)。在
  • 取值范围d[1,2,3,4,5]==d[1-5]==d5
    • d[-5,-4,-3,-2]==d[-5--2]==d[-2--5]
  • 多等边d[1,1,1,1,1,1,1,8]的乘法器==d[1*7,8]
    • d[1,1,1,2,2,3,3,4]==d[1-3*2,1,4]

保持下降

<number of dice to roll>d<number of sides on the dice>[k for keep d for drop]<number of dice to keep or drop>
2d20k1  roll 2 d20's take the highest 1
16d%k10 roll 16 d% keep the hightest 10
10d[-1,1]d5  roll 10 d[-1,1]'s drop the highest 5
2dFd1  roll 2 dF's drop the highest 1

如果要保留的骰子数设置在要掷出的骰子数之上,它将保留所有骰子。
如果掷骰子的数目等于或大于掷骰子的数目,它将总是掷0。
如果要保留的骰子数设置为零,则它将始终掷0。
如果掷骰子的数目被设置为零,那么它将被忽略。

设置变量

VAR lower_case_name = 1
VAR name = 4d20

加、减、乘、整数除法

VAR name = 1 + 2d3 - 3 * 4d2 // 5

括号

VAR out = 3 * ( 1 + 1d4 )

二元运算符

VAR a = 1d4 == 1
VAR b = 1d4 != 1
VAR c = 1d4 <= 2
VAR d = 1d4 < 3
VAR e = 1d4 >= 2
VAR f = 1d4 > 2
VAR g = (1d4 >= 2) AND !(1d20 == 2)
VAR h = (1d4 >= 2) OR !(1d20 == 2)

对于非二进制值,大于0的值被视为true。在

绝对值
VAR abs = ABS( 1d6 - 1d6 )

h4>
MAX(4d7, 2d10)
MIN(50, d%)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
运行ClassSpy java时发生反射错误   java Android ContextWrapper fileList()看不到我的文件   java使用JAXWS构建大型MTOM/XOP消息   eclipse如何使用ACM库(控制台程序)编写Java程序?   java m2eclipse插件搜索在配置为Nexus时不会给出结果   java Scanner只识别文本文件中的某些行,而不识别其他行   java如何从smartwatch启动活动或服务   java检查数组是否至少有两个具有特定值的元素   JAVA网URL编码器/解码器替代方案   Java中通过引用传递对象   spring如何在使用JavaJSON修补程序进行修补时禁止更新字段   使用java将海量数据存储到mysql的最佳方法   java字符串作为不可变对象   java我无法访问tomcat服务器(localhost),甚至无法访问mysql   java While循环条件未给出预期结果   java如何启动传递图像uri的新活动   Java中类定义在方法中的使用   Java程序在Ubuntu中运行我的另一个程序