raa0121 / GoBCDice

GoBCDice is BCDice reimplemented by Go.
BSD 3-Clause "New" or "Revised" License
9 stars 2 forks source link

ランダム数値取り出しの評価を実装する #5

Closed ochaochaocha3 closed 5 years ago

ochaochaocha3 commented 5 years ago

ランダム数値取り出し [m...n] の評価を実装する。

ランダム数値取り出しは、ダイスロールの一種として扱われることが分かっている。これは、どどんとふ上でランダム数値取り出しを入力すると、[1...n]n が4、8、10、12、20、100だった場合に対応するダイスが表示されたためである。そこで、既存のダイスロールとうまく共存させることを意識して実装する。

追記:

[m...n] のランダム数値取り出しは、実際にダイスロールに変換されていた。このランダム数値取り出しは、r = n - m + 1(mからnまでの整数の数)とおくと、1Dr に変換される。このダイスロールの結果を d と書くと、ランダム数値取り出しの結果は (m - 1) + d = m + d - 1 となる。

現在のBCDiceの実装では、m < n の場合のみ受け付け、そうでない場合はエラーになる。

参考:https://github.com/bcdice/BCDice/blob/f8881ea551565592580bb1dd9d8348f2d2cdfb58/src/bcdiceCore.rb#L1595-L1617

ochaochaocha3 commented 5 years ago

93399a70f8534c807ffef5e6776e87ab79393054 で実装完了。また、計算コマンドではダイスロールやランダム数値取り出しなどの値が変化する要素を許可しないことを決めた。