ViVi
ViVi
おふたりとも、コメントありがとうございます まだ検討中ですが、現時点では、 - `#` → `@` - `*` → `#` に置き換えようかと思っています (ゲーム中に高頻度で指定する値が `#` なのは(一般的なキーボード入力にとって)やや不便だと思ったので `@` に。番号のニュアンスではなく、 @ → at で時間的位置のニュアンスとして馴染みやすそう、という意図もあります) (乗算記号との混同に配慮して `*` は避けて、代わりはまぁなんでもいいんですが、あまり視認性のよい ASCII 範囲の記号の選択肢もないので `#` に)
@ysakasin パースの実装(の主な部分)を `Command::Parser` に置き換えました。 https://github.com/bcdice/BCDice/pull/517/commits/251d94b37d3711772182c1a052332366ecc82950 (汎用の処理に委譲(というか forwarding )する前に正規表現で置換しているので、完全に parser で実現しているわけではありませんが、このほうがコードベースへのインパクトが小さいのと、 parser と正規表現の併用には[前例](https://github.com/bcdice/BCDice/commit/42c13fd1b6200d191889332ac930726079050e4c#diff-9424f3958730cc62c2a60603f5f0904ef9d71e25b362cfc184d41c1d4d59db13R78-R87)もあるので、まぁいいかとおもいました) それに際し、既存の挙動だけでは目的のコマンドインタフェースを実現できなかったため、以下の機能を追加しています: - `&x` ( x は値)によるオプション指定 - target より後ろのオプション指定 (なお、後者に関して、 _h-mikisato_, _opparco_ 両氏にご協力いただきました。ありがとうございます)
@GenKuzumochi ありがとうございます! --- > 「nD6から最大値1つを選ぶ」は3D6KH1 で振ることができます。 > 複雑なのでシステム固有で作成するのはありだと思いますが、できればBCDiceの共通処理を呼び出すほうが良さそうですね。 そのとおりなので、汎用コマンドのラッパー的な実装に変更しました。 https://github.com/bcdice/BCDice/pull/527/commits/75c754da0fae3b452ad2930377f1cc925079bf68 --- > ### ダイスを2回振って12通りの結果を得るテーブル > こちらの表がそのまま使えたりしませんか? > https://github.com/bcdice/BCDice/blob/master/lib/bcdice/dice_table/d66_half_grid_table.rb 抽出のロジックがそのまま使えたので、そのように置き換えました。 https://github.com/bcdice/BCDice/pull/527/commits/06b9bf5abd9ed44dc03cb37f62fd2b096962d1da 結果を d66 ライクな表記から置き換える必要は依然としてあったので、そのための実装は残っています。 (これはそこそこ一般的に発生しそうな要求だと感じるので、 D66HalfGridTable や D66GridTable 側に出力フォーマットを操作する機能を足そうかとも思いましたが、クラス名に `D66` と入っている以上は...
> また、BCDiceは伝統的にnDXのような記法を取っているので、nKB (Kizuna Bullet)とか nMD (Max Dice)とかのほうが馴染みそうに思います。 これに関しては、妥当と信じられる落とし所が思いつかず、いまのところ手をつけていません。 #### nKB ゲームシステム名を冠する方式は、「1ゲームシステムに1通りのダイスロールのルール」の場合ならばアリだと思いますが、そうでない場合には対称性を欠くので避けたいです。 『キズナバレット』の場合、現時点でも「nDの合計値をもとめるダイスロール」「nDの最大値をもとめるダイスロール」がそれぞれルールとして定義されており、後者のみにゲームシステム名を冠したコマンド名が与えられるのは不自然だと考えました。 #### nMD 現行のルールの範囲では過不足なく自然だと思うので、これはけっこう有力だと思っています。 いだいている懸念は、「“最小値をもとめるダイスロール”がもし将来的に追加されると不自然になりそう」……という杞憂じみたものなので、まぁ無視して nMD でやってしまってもよいかなとも思わなくもないです。(一般向けに公開されるインタフェースでさえなければ nMD にしたと思います) (『キズナバレット』のダイスロールルールは、何らかの判定などと切り離して単純に乱数をもとめるルールとして定義されており、最小値抽出が追加される可能性は、ゲームデザインとしては現実的にありえる範疇だと感じています) ……と書いていて思いましたが、 `nMAD` か `nMAX` にすれば丸く収まるのかもしれません。
いただいているコメントとは何の関係もありませんが、ルールブックに添うようにヘルプメッセージを修正しました。 https://github.com/bcdice/BCDice/pull/527/commits/98a4c780f44cb7e32d84298dbf5dec5ab7596e52 https://github.com/bcdice/BCDice/pull/527/commits/5375b0210f72ea99ee7eefac6bc082a00367d987
> `nMAD` か `nMAX` にすれば丸く収まるのかもしれません。 収まると思ったので、 `nMAX` で実装しました。 https://github.com/bcdice/BCDice/pull/527/commits/b914bd5808cedeb41d5f203ecf9f2ca1e74c3914