-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[StellarLife] 全コマンドにわたってダイス目がズレている問題を修正(+α) #494
[StellarLife] 全コマンドにわたってダイス目がズレている問題を修正(+α) #494
Conversation
p133-137
p123 これはズレだけじゃなくて完全におかしかった。
p120 これもズレだけじゃなくて完全におかしかった。 しかも値が合体してるのが3箇所くらいあった。
元の実装は出目( 1 ~ 10 )からマイナス1していた。 が、ルールブック p9 を見るに、 1 ~ 9 については出目をそのまま読むのが正しい。
元は負の数のケースしかなかった。
Codecov Report
@@ Coverage Diff @@
## master #494 +/- ##
==========================================
+ Coverage 95.42% 95.58% +0.15%
==========================================
Files 296 296
Lines 18932 18864 -68
==========================================
- Hits 18066 18031 -35
+ Misses 866 833 -33
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ありがとうございます 👍
#492, #493 で言及した問題の修正(+α)です。
以下、〚p○○〛と表記した場合、『ステラーライフTRPG(電子PDF版)』の○○ページを指す。
『ステラーライフ』と表記した場合、同書を指す。
全コマンドにわたってダイス目がズレている問題
関連コマンド:すべて
『ステラーライフ』では、10面体ダイスをもちいる。〚p5〛〚p8〛
その際、(多くの一般的なTRPGとことなり)「0」表記の目を (「10」ではなくそのまま)「0」と読む 。〚p9〛
ところが、このダイスボットの従来の実装では( BCDice の標準の機能で 1D10 を振ると、( 0 から 9 ではなく) 1 から 10 の範囲をとるので) 1D10 の結果からマイナス1することで、 0 から 9 の範囲を実現していた。
この実装でも確率分布はもちろん変わらないのだが、 「ステラーライフの専用機能内でもちいる(そして出力メッセージにふくまれる)数字はマイナス1されたもので、生の乱数部分はマイナス1されていない状態の出力」 が発生する。
(現行バージョンの実際の出力の例)
これは“乱数の出力をもとにダイスのアニメーション演出をおこなう”サービス等でおかしな状況をうみだしてしまう。
( Saipage の例)
よって、これを直した。(この pull request にふくまれる差分の大部分はこれ)
その他の問題
以下、前述の問題の修正と確認の過程で発見された、関連する問題とその対応に関する説明。
「お題表」の番号がルールブックをズレている問題
関連コマンド:
この「お題表」は、前述の(マイナス1の)問題と同時に、別の問題で別のズレかたもしていた。
『ステラーライフ』における 1D10 形式の表のうち、ほとんどのものは同書内で「 0, 1, 2, ..., 8, 9」という番号の並びで記述されている。(〚p73〛等)
ところが、「お題表」にかぎっては、「 1, 2, 3, ..., 8, 9, 0 」という番号の並びで記述されている。〚p133~137〛
そのうえで、従来の実装では(番号の並びの差異にかかわらず)同書の記述順そのままで記述したものを、同じロジック(= 0 → 9 向けのロジック)であつかっていた。
これを直した。
直すにあたり、コード上の項目の記述は原著にあわせたほうがリーダビリティとメンテナビリティの観点で妥当と判断し、 0 → 9 向けのテーブルクラスと 1 → 0 向けのテーブルクラスを別個につくってある。
「ランダムNPC艦表」「ランダムイベント表」のバグ
関連コマンド:
完全に動作がバグっていた(『ステラーライフ』の記述に沿わない動きをしていた)ので直した。〚p120〛〚p123〛
前者については、テーブルの内容のリストに単純な誤植もあったので、それも直した。
表の結果にまぎれこんでいる余計なホワイトスペース
単純な誤植と思われる。削除した。対象はつぎの2つ。(該当のホワイトスペース自体は3箇所)
「船名後半表」
〚p73〛
関連コマンド:
「超未来のエンタメ」表
〚p134〛
関連コマンド:
リファクタリング
テスト
上記に必要なケースのほか、判定ルールの境界値に関するケースを追加。