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 或更小的结果添加到池中。