porthou / dicebag
从标准骰子表示法创建骰子掷骰结果
1.0.0
2022-02-14 10:28 UTC
Requires
- php: ^7.1.3 || ^8.0.0
- ext-json: *
- symfony/console: ^4.0|^5.0|^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- phpspec/prophecy-phpunit: ^2.0
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^8 || ^9
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-09-14 16:29:33 UTC
README
从标准骰子表示法创建骰子掷骰结果
简单示例
<?php use DiceBag\DiceBag; $diceBag = DiceBag::factory('4d6dl1'); echo $diceBag;
安装
先决条件
DiceBag 需要 PHP 7.1 或更高版本。
通过 Composer 安装
通过 composer 安装很简单,只需在命令行中执行以下命令
composer require porthou/dicebag
使用 DiceBag
DiceBag 被设计成允许您以尽可能少的配置创建结果,同时尽可能随机。默认情况下,它将使用 PHP7 的默认 CSRNG 生成,通过 random_int。
如果需要自定义 RNG,则可以将其作为第二个参数传递给 DiceBag::factory() 方法。这将传递给任何需要 RNG 的实例。
<?php use DiceBag\DiceBag; use DiceBag\Randomization\MersenneTwister; $randomizationEngine = new MersenneTwister(); $diceBag = DiceBag::factory('10f', $randomizationEngine);
骰子类型
有 3 种“骰子”类型
标准骰子 NdX
此操作掷 N 个标准数值骰子,每个骰子有 X 个面。如果未指定 N,则默认为 1
示例
d6投掷一个 6 面骰子。4d6投掷 4 个 6 面骰子。d20投掷一个 20 面骰子。
命运骰子 NdF
此操作掷 N 个命运(也称为模糊)骰子。如果未指定 N,则默认为 1。命运骰子可以掷 -1、0 或 1。
示例
f投掷一个命运骰子。4f投掷 4 个命运骰子。
固定修正项 X
固定修正项与其他骰子格式结合使用时最有用。它们添加(或减去)一个固定值
示例
2d6+10投掷 2 个 6 面骰子并将 10 添加到结果中。
骰子池修正项
骰子池修正项用于更改骰子池的结果。
保留最高 khX
此操作保留骰子池中的最高 X 个结果。
示例
4d6kh3投掷 4 个 d6 并保留最高的 3 个。
丢弃最低 dlX
此操作丢弃骰子池中的最低 X 个结果。
示例
4d6dl1投掷 4 个 d6 并丢弃最低的结果。
保留最低 klX
此操作保留骰子池中的最低 X 个结果。
示例
4d6kl1投掷 4 个 d6 并保留最低的结果。
丢弃最高 dhX
此操作丢弃骰子池中的最高 X 个结果。
示例
4d6dh1投掷 4 个 d6 并丢弃最高的结果。
爆炸骰子 !cN
爆炸骰子在掷出最大值时将额外的骰子添加到池中。这些额外的骰子也可以爆炸。
如果只指定 N,则骰子将在指定的值上爆炸。
c 是一个条件,可以是 <、> 或未指定。当与 N 一起指定时,骰子将在值大于或等于或小于或等于指定值时爆炸。
示例
4d6!投掷 4 个 d6,并将任何结果为 6 的结果添加到池中。4d6!1投掷 4 个 d6,并将任何结果为 1 的结果添加到池中。4d6!>5投掷 4 个 d6,并将任何结果为 5 或更大的结果添加到池中。4d6!<2投掷 4 个 d6,并将任何结果为 2 或更小的结果添加到池中。