上方無限ロール

上方無限ロールnUxはダイスの振り足しを行うことで、何個のダイスグループが条件を満たすことができるか調べるコマンドです。

コマンドの形式は以下の通りです。

aUx+nUm+...+xUy[振り足し]+修正値>=目標値
aUx+nUm+...+xUy+修正値>=目標値@振り足し

nUxと記述した場合、ダイスグループをn個作成し、それらのダイスグループにはx面ダイスが1つずつ割り当てられます。

処理はダイスグループごとに行われます。まず、最初に割り当てられたダイスを1つをダイスロールします。 その出目が振り足しより大きければもう一回ダイスロールを行ってダイスグループに値を追加します。 追加の出目についても振り足しとの比較を行い、条件を満たす限り追加のダイスロールを繰り返します。

全ての振り足しが完了したら、ダイスグループごとに出目の合計値を求めて目標値と比較します。 目標の条件を満たしら成功とし、成功したダイスグループの数を最終結果として表示します。

実行例

[DiceBot]> 2U4+1U6[4]>=6
(2U4+1U6[4]>=6) > 5[4,1],15[4,4,4,3],3 > 成功数1

上記コマンドでは4面ダイスのダイスグループが2つ、6面ダイスのダイスグループが1つで、振り足しの条件は4以上、成功の条件は6以上となっています。わかりやすくするために、4面ダイスのダイスグループをそれぞれ4面a4面b、6面ダイスのダイスグループを6面と書くことにします。

各ダイスグループごとの動きは以下の通りです。

4面a: 4 -(振り足し)-> 1 (終了) : 5[4,1]
4面b: 4 -(振り足し)-> 4 -(振り足し)-> 4 -(振り足し)-> 3 (終了) : 15[4,4,4,3]
6面: 3 (終了) : 3[3]

4面aは1回目の出目が4以上だったので振り足しが行われ、2回目は1だったのでそこで終了し、合計5となりました。 4面bは1回目の出目が4以上だったので振り足しが行われ、その後も4が続き、合計15となりました。 6面は出目が3で振り足し条件を満たさなかったため、振り足しが行われませんでした。

各ダイスグループの合計と成功条件>=6を比較すると、条件に合致するのは4面b1つであるため、成功数1と表示されました。

振り足しの閾値

ダイス目が[]@で指定された数以上であればダイスの振り足しが行われます。

[]はダイスの末尾に書きます

2U6[4]>=10

@は式の末尾に書きます

2U6>=10@4

閾値が明示されていない場合、ゲームシステムに設定されたデフォルト値を参照します。

2U6>=10

閾値の制限

閾値は2以上としてください。1以下だと常に振り足し条件を満たしてしまい、無限ループ防止のためエラーとなります。

[DiceBot]> 2U4[1]>=6
(2U4[1]>=6) > 無限ロールの条件がまちがっています

修正値

修正値は各ダイスグループに1回のみ加算されます。

[DiceBot]> 2U4+1U6[4]+2>=6
(2U4+1U6[4]>=6) > 5[4,1],15[4,4,4,3],3+2 > 成功数2

修正値の適用過程

4面a: 5[4,1]+2 -> 7 -> 成功
4面b: 15[4,4,4,3]+2 -> 17 -> 成功
6面: 3+2 -> 5 -> 失敗

比較記号

比較は他のコマンドと同様に以下の記号を指定できます

記号 意味
>= 以上
> より大きい
< 未満
<= 以下
==, = 等しい
!=, <> 異なる

目標値の省略

比較記号と目標値を省略した場合、ダイスの最大値と、全てのダイスの合計値が出力されます。 合計値の算出では修正値は全体で一回のみ加算されます。

[DiceBot]> 2U4+1U6[4]+10
(2U4+1U6[4]+10) > 9[4,4,1],1,13[4,6,3]+10 > 23/33(最大/合計)

最大値の算出過程

9[4,4,1]+10 -> 19
1+10 -> 11
13[4,6,3]+10 -> 23 -> 最大値

合計値の算出過程

[4,4,1] + 1 + [4,6,3] + 10 -> 33

results matching ""

    No results matching ""