Ochaochaocha3 (トーク | 投稿記録) |
タグ: 取り消し |
(他の1人の利用者による、間の1版が非表示) | |
(相違点なし)
|
2020年8月27日 (木) 07:39時点における最新版
加算ロールの演算処理を担うクラス。
getSlashedDice
ダイスロール結果の除算を行う。接尾辞 U
や R
によって丸め処理の方法を指定することができる。
例:
4D10
の結果が30
のとき- 切り捨て:
4D10/7
→ 4.2… → 4 - 四捨五入:
4D10/7R
→ 4.2… → 4 - 切り上げ:
4D10/7U
→ 4.2… → 5
- 切り捨て:
4D10
の結果が32
のとき- 切り捨て:
4D10/7
→ 4.5… → 4 - 四捨五入:
4D10/7R
→ 4.5… → 5 - 切り上げ:
4D10/7U
→ 4.5… → 5
- 切り捨て:
def getSlashedDice(slashMark, dice)
return dice unless( /^\/(\d+)(.)?$/i === slashMark )
rate = $1.to_i
mark = $2
return dice if( rate == 0 )
value = (1.0 * dice / rate)
case mark
when "U"
dice = value.ceil
when "R"
dice = value.round
else
dice = value.floor
end
return dice
end