-
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
個数カウントダイスを追加する #509
個数カウントダイスを追加する #509
Conversation
Codecov Report
@@ Coverage Diff @@
## master #509 +/- ##
==========================================
+ Coverage 95.43% 95.51% +0.08%
==========================================
Files 310 318 +8
Lines 18236 18655 +419
==========================================
+ Hits 17403 17818 +415
- Misses 833 837 +4
Continue to review full report at Codecov.
|
以下は私が作成時や返信を読んだときに考えたことです。
|
[imo] コマンド名について、
[LGtM] 名前については上のとおりですが、書式は妥当そうに思います。(ただし後述のオプションが必要になった場合はその点は新規に考慮が必要) [imo] ソートは、(わたしが思いつくかぎりのこのコマンドのユースケースでは)集計側があればそれで足りるので、ソートされてなくても問題ないように思います。
[imho] 表示形式は、現状ママだとつらい感じがします。
1つも出なかった目は、明示的に0個と表記されてほしいです。
[nits] コメントにある「振る個数が多い場合」は、「振る個数が少ない場合」または「面数が大きい場合」の誤りではないでしょうか? 言語依存の件は、これ https://github.com/bcdice/BCDice/blob/master/lib/bcdice/common_command/barabara_dice/node.rb#L34 がローカライゼーション対応されていないなら看過してもいいんじゃないでしょうか……。 |
確かに
合わせると、
想定されているシステムがすべて6面しか使わないとすると、確かに0個を明記しても問題なさそうです。
そのとおりでした。「面数が多い場合」に修正しました。
確かにそうですね。まだ最初ですし、とりあえず日本語の「個」の表記に固定します。 |
これはなるほどと思いました。少なくとも6面までのときは全部表示で良いかと思います。 |
なるほど。これは興味深いアイディアですね |
個数カウントの |
出力フォーマットについてですが、改行の利用を検討してみたいです。 ダイスごとに改行する方式や、
10面ごとなど、きりの良いところで改行するなどどうでしょう。
|
じっくり考えてみます。話題を追いきれてないので時間がかかるかもしれません。 このPRについては、いったん出力形式の決定に注力してもらえると嬉しいです。 |
89c4c01
to
50f4e94
Compare
閾値を設定すると、同じコマンドでも表示内容が異なり、混乱の原因となってしまうと思います。 |
確かに、出力が場合によって変わることと、閾値をどこに置くかが主観的になりがちなことが混乱の原因となりそうな気はします。 個人的には、「×0」の表示はデフォルト非表示の方が安全ではないかと思います。Typoしてうっかり多い面数で振ってしまったときなどに画面が埋まり得ることを考慮すると、むしろオプションを付けたときのみ表示するのが良いのではないでしょうか? 例えば、次の表のように
|
これが問題だとするなら(まぁまぁ問題だとはおもいます)、それは、「デフォルトをいずれの側に倒すかどうか」とは別の観点から対処すべきようにも感じます。(けっきょく |
いずれの案でも実装はできると思いますが、結局どうするのが良いのでしょうか? 方針が定まらないので、手を動かせない状態が続いています。 |
とりあえずわたしが積極的に主張したいのは、
という一点です。 根拠は、過去に述べたように、「現時点で具体的に想定できるユースケースにおいては、そのほうが便宜にすぐれると思うから」です。 (ただし、反例として、『アルケミア・ストラグル』( AlchemiaStruggle )の そのうえで、もし「表示なし」側をデフォルトにするなら、「表示あり」側が3文字コマンドであってほしくはないです。 |
面数側を typo したときにメッセージが巨大になる件について、「 そもそも面数を入力しなければ typo することもなく、この機能を利用するであろうルールの多くが6面であろうことを考慮すると、現実的にかなりの効果が見込める気がしています。 |
おそらく決めが必要なので、以下にしましょう。
汎用コマンドなので、一文字コマンドにするか悩みましたが、x0の表記あるなしの対応づけのバランスが取れないので二文字コマンドにします。 |
補足:どちらのコマンドも面数およびダイス数の省略は不可とします。 |
50f4e94
to
544dcc6
Compare
#509 (comment) に仕様を合わせ、実装しました。レビューお願いします。 |
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.
いいと思います!
マージありがとうございます! |
Discordのbcdice-helpサーバで出た質問を基にして、バラバラダイスの出目の個数を数える汎用コマンドを追加してみました。ご意見をいただきながら、使いやすい形にしていきたいと思います。
背景
xUL
で対応しています。ただし、面数が6に固定されており、他の面数で振りたい場合は、手作業で数えるか各システムに固有コマンドを追加する必要がありました。目的
多くのシステムでバラバラダイスの出目の個数を数えられるようにするため、そのように動作する汎用コマンドを追加します。他の汎用コマンドと同様に、振るダイスの個数と面数を指定できるようにします。
仕様
#509 (comment) に合わせた仕様です。
名称
BCDice::CommonCommand::TallyDice
(「tally」は英語で「集計する」という意味。Rubyではこのコマンドと同様の集計操作が
Enumerable#tally
というメソッドになっています。)書式
このコマンドには2種類の書式があります。選んだ書式によって、出現しなかった目について「×0」を表示するかどうかが変わります。
「×0」を表示しない場合
(由来:英単語「tally」の略)
「×0」を表示する場合
(由来:「Tally with Zero」の略)
動作の概要
y
面ダイスをx
個ダイスロールし、各出目の個数を表示します。選んだ書式によって、出現しなかった目について「×0」を表示するかどうかが変わります。xTYy
:出現しなかった目の表示が省略されます。xTZy
:出現しなかった目が「×0」と表示されます。表示が極端に長くなることを防ぐため、現在はダイスの面数を20以下に制限しています。今後の利用状況や要望に応じて、拡張される可能性があります。
実行例
動作の詳細
(参考)旧仕様
名称
BCDice::CommonCommand::BarabaraCountDice
クラス名の由来は、バラバラダイス+カウントです。
書式
BC
はクラス名BarabaraCount
の略です。動作の概要
y
面ダイスをx
個ダイスロールし、各出目の個数を表示します。実行例
論点
①2 ②3…、1(2個) 2(3個)…、⚀⚁…
など様々な表記が考えられる。