クトゥルフ神話TRPG第7版のダイスボットとテストデータ
- Anonymous
-
Topic Author
7 years 7 months ago #1675
by Anonymous
Anonymous created the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
初めまして、Twitterでニャル提督という名前で活動している者です。
クトゥルフ神話TRPG第7版用のダイスボットを作成いたしました。
日本では未訳ですが、第6版ではできなかった(分からなかった)処理がしっかり明記されできるようになっている
素晴らしい版なので、少しでも布教できれば…と思い作成いたました。(色々明記されすぎているので、ルールを
全て覚えるKPは少し大変。ルールが少々複雑化した代わりに、しっかりとした指針ができ、痒いところに手が
届いた感じです。)
初めてダイスボットを作ったので、少々くどい記述やこれ簡略化しないの?って部分があるかと思いますがご容赦いただけるとありがたいです。
●以下第7版と第6版のボットの主な違い
・通常技能ロールはCC(x)<=(技能値)でロールする。x=ボーナス・ペナルティダイス(-2~2)。
ボーナスダイス1つなら、テンズダイスをもう1つロールし、低い出目を十の位として採用する。(10=0)
ペナルティダイス1つなら、テンズダイスをもう1つロールし、高い出目を十の位として採用する。(10=0)
ボーナス・ペナルティダイスの上限は2個、(一度の判定で合計で(最高の場合)テンズダイス3つロール)
ボーナスダイスなら正数、ペナルティダイスなら負数を入力する。
・判定結果が、決定的成功(1)、極限の成功(技能値/5の切捨て)、困難な成功(技能値/2の切捨て)、
失敗、致命的失敗(成功するための目標値が49以下だと96-100、50以上の場合100のみ)の5段階の度合いで表示
される。
・相手と競う場合には、判定結果の度合いで決定するので抵抗ロールRESが無くなっている。
・CBRロールの結果も、上記5段階の度合いに対応。
・フルオート機関銃専用のFAR(Full Auto Roll)が新たに追加。FAR(w,x,y,(z))の形式で入力し、自動で命中
数を算出する。w=使う弾数(1~100)、x=技能値(0~100)、y=故障ナンバー(0~100)、z=初期ボーナス・ペ
ナルティダイス(-2~2)
一度の判定で、技能値/10(切捨て)の数の弾分のロールを行っていき、ロールする度にペナルティダイスが1つ
追加されていく。
ペナルティダイスの上限は2なので3になる場合、代わりに成功の難易度が1つ上がっていく(通常成功→困難な
成功→極限の成功→決定的成功の順で)。(成功の難易度が困難な成功以上となった場合、どんな場合でも成功
の目標値が49以下になるので、ファンブルが96-100になる。)
最終的には1のみが成功となり、それ以上難しくできないので、そこでロールは終了する。途中で弾薬が切れた
場合や、ジャムの場合もその時点でロールが終了となる。
通常成功・困難な成功:1度のロールで使った弾の半分がターゲットに命中(切り捨て、最低1発)
極限の成功・決定的成功:1度のロールで使った弾の全てがターゲットに命中(半分は貫通、もう半分は通常ダメ
ージ、貫通は最低1発、通常は最低0発)
※どんな場合でも、極限の成功・決定的成功で成功となった場合は、貫通が起こる。
※最高で、28個10面ダイスを転がすので少しレスポンスが遅い。内部処理も多いのでサーバーによっては注意が
必要?(xreaの無料サーバーでは問題なさそうだった。)
クトゥルフ神話TRPG第7版用のダイスボットを作成いたしました。
日本では未訳ですが、第6版ではできなかった(分からなかった)処理がしっかり明記されできるようになっている
素晴らしい版なので、少しでも布教できれば…と思い作成いたました。(色々明記されすぎているので、ルールを
全て覚えるKPは少し大変。ルールが少々複雑化した代わりに、しっかりとした指針ができ、痒いところに手が
届いた感じです。)
初めてダイスボットを作ったので、少々くどい記述やこれ簡略化しないの?って部分があるかと思いますがご容赦いただけるとありがたいです。
●以下第7版と第6版のボットの主な違い
・通常技能ロールはCC(x)<=(技能値)でロールする。x=ボーナス・ペナルティダイス(-2~2)。
ボーナスダイス1つなら、テンズダイスをもう1つロールし、低い出目を十の位として採用する。(10=0)
ペナルティダイス1つなら、テンズダイスをもう1つロールし、高い出目を十の位として採用する。(10=0)
ボーナス・ペナルティダイスの上限は2個、(一度の判定で合計で(最高の場合)テンズダイス3つロール)
ボーナスダイスなら正数、ペナルティダイスなら負数を入力する。
・判定結果が、決定的成功(1)、極限の成功(技能値/5の切捨て)、困難な成功(技能値/2の切捨て)、
失敗、致命的失敗(成功するための目標値が49以下だと96-100、50以上の場合100のみ)の5段階の度合いで表示
される。
・相手と競う場合には、判定結果の度合いで決定するので抵抗ロールRESが無くなっている。
・CBRロールの結果も、上記5段階の度合いに対応。
・フルオート機関銃専用のFAR(Full Auto Roll)が新たに追加。FAR(w,x,y,(z))の形式で入力し、自動で命中
数を算出する。w=使う弾数(1~100)、x=技能値(0~100)、y=故障ナンバー(0~100)、z=初期ボーナス・ペ
ナルティダイス(-2~2)
一度の判定で、技能値/10(切捨て)の数の弾分のロールを行っていき、ロールする度にペナルティダイスが1つ
追加されていく。
ペナルティダイスの上限は2なので3になる場合、代わりに成功の難易度が1つ上がっていく(通常成功→困難な
成功→極限の成功→決定的成功の順で)。(成功の難易度が困難な成功以上となった場合、どんな場合でも成功
の目標値が49以下になるので、ファンブルが96-100になる。)
最終的には1のみが成功となり、それ以上難しくできないので、そこでロールは終了する。途中で弾薬が切れた
場合や、ジャムの場合もその時点でロールが終了となる。
通常成功・困難な成功:1度のロールで使った弾の半分がターゲットに命中(切り捨て、最低1発)
極限の成功・決定的成功:1度のロールで使った弾の全てがターゲットに命中(半分は貫通、もう半分は通常ダメ
ージ、貫通は最低1発、通常は最低0発)
※どんな場合でも、極限の成功・決定的成功で成功となった場合は、貫通が起こる。
※最高で、28個10面ダイスを転がすので少しレスポンスが遅い。内部処理も多いのでサーバーによっては注意が
必要?(xreaの無料サーバーでは問題なさそうだった。)
Reply to Anonymous
- Anonymous
-
Topic Author
7 years 7 months ago #1676
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
説明文のあまり重要ではない部分をいくつか削りました。
変更した説明文データを下に書いておきます。
あと、説明文だけ変更したデータを添付します。
よろしくお願いいたします。
以下修正後説明文データ
=================================================
・1D100の目標値判定で、クリティカル(決定的成功)/極限の成功(技能値の1/5以下で成功)/困難な成功(技能値の1/2以下で成功)/通常成功/失敗/ファンブル(致命的失敗)の自動判定。
(7版では50以上の達成値で成功する場合にはファンブルは達成値100のみとなり、スペシャルはありません)
・ボーナスダイス、ペナルティダイスがある1D100の目標値判定は、それぞれCCの後に()をつけ判定します。
()の中はボーナスダイスなら1か2の数字、ペナルティダイスなら-1か-2の数字をつけます。0の場合はCCのみでも判定可能です。
例1)CC(2)<=30
Cthulhu7th:(1D100<=50)→ 66,46,6 → 6 → 極限の成功
例2)CC(-1)<=75
Cthulhu7th:(1D100<=75)→ 82,52 → 82 → 失敗
・組み合わせ判定 (CBR(x,y))
目標値 x と y で%ロールを行い、成功したかどうかを表示します。
例)CBR(50,20)
Cthulhu7th : (1d100<=70,20) → 22[困難な成功,失敗] → 部分的成功
・連射(フルオート)判定 (FAR(w,x,y,z)) ※掃射の際には、余分な弾を使う弾数から減らしてから使用するようにしてください。
wに使う弾数を、xに技能値を入れ、yに故障ナンバー、zにボーナス・ペナルティダイスの数字(-2~2)を入れることによって結果を算出します。ただし、wは1~100まで、x,zは1~100までの数字です。
使う弾数が0になった時点で、そのラウンドの連射が終了します。弾が余った場合、結果に表示されます。
ジャムが起きた場合、その段階で(ジャムの回の弾薬は消費せず)ロールを終了します。ジャムが起きず、ファンブルが起きた場合運の低い味方に命中します。
ダメージ算出は命中数と貫通数から各自で計算するようにお願いします。FAR(w,x,y)の形でも判定可能です。
成功難易度以下で、極限の成功又は決定的成功を1回するごとに、技能値/10の値の半分(切り上げ)が貫通し技能値/10の値の半分(切捨て)が通常命中します。
成功難易度以下で、通常成功又は困難な成功を1回するごとに、技能値/10の半分の値(切捨て、最低値1)が通常命中します。
例1)FAR(50,80,98,-1)
Cthulhu7th : ボーナス・ペナルティダイス[-1]
1回目: → 5, 15 → 極限の成功
2回目: → 50, 40, 30 → 通常成功
難易度が困難な成功に変更
3回目: → 29, 89, 99 → 致命的失敗ジャム
8発が命中、4発が貫通、残弾34発
=================================
変更した説明文データを下に書いておきます。
あと、説明文だけ変更したデータを添付します。
よろしくお願いいたします。
以下修正後説明文データ
=================================================
・1D100の目標値判定で、クリティカル(決定的成功)/極限の成功(技能値の1/5以下で成功)/困難な成功(技能値の1/2以下で成功)/通常成功/失敗/ファンブル(致命的失敗)の自動判定。
(7版では50以上の達成値で成功する場合にはファンブルは達成値100のみとなり、スペシャルはありません)
・ボーナスダイス、ペナルティダイスがある1D100の目標値判定は、それぞれCCの後に()をつけ判定します。
()の中はボーナスダイスなら1か2の数字、ペナルティダイスなら-1か-2の数字をつけます。0の場合はCCのみでも判定可能です。
例1)CC(2)<=30
Cthulhu7th:(1D100<=50)→ 66,46,6 → 6 → 極限の成功
例2)CC(-1)<=75
Cthulhu7th:(1D100<=75)→ 82,52 → 82 → 失敗
・組み合わせ判定 (CBR(x,y))
目標値 x と y で%ロールを行い、成功したかどうかを表示します。
例)CBR(50,20)
Cthulhu7th : (1d100<=70,20) → 22[困難な成功,失敗] → 部分的成功
・連射(フルオート)判定 (FAR(w,x,y,z)) ※掃射の際には、余分な弾を使う弾数から減らしてから使用するようにしてください。
wに使う弾数を、xに技能値を入れ、yに故障ナンバー、zにボーナス・ペナルティダイスの数字(-2~2)を入れることによって結果を算出します。ただし、wは1~100まで、x,zは1~100までの数字です。
使う弾数が0になった時点で、そのラウンドの連射が終了します。弾が余った場合、結果に表示されます。
ジャムが起きた場合、その段階で(ジャムの回の弾薬は消費せず)ロールを終了します。ジャムが起きず、ファンブルが起きた場合運の低い味方に命中します。
ダメージ算出は命中数と貫通数から各自で計算するようにお願いします。FAR(w,x,y)の形でも判定可能です。
成功難易度以下で、極限の成功又は決定的成功を1回するごとに、技能値/10の値の半分(切り上げ)が貫通し技能値/10の値の半分(切捨て)が通常命中します。
成功難易度以下で、通常成功又は困難な成功を1回するごとに、技能値/10の半分の値(切捨て、最低値1)が通常命中します。
例1)FAR(50,80,98,-1)
Cthulhu7th : ボーナス・ペナルティダイス[-1]
1回目: → 5, 15 → 極限の成功
2回目: → 50, 40, 30 → 通常成功
難易度が困難な成功に変更
3回目: → 29, 89, 99 → 致命的失敗ジャム
8発が命中、4発が貫通、残弾34発
=================================
Reply to Anonymous
- Anonymous
-
Topic Author
7 years 7 months ago #1677
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
お手数おかけして申し訳ありません。
よろしくお願いします。
(添付ファイルに説明文のみ変更したファイルがあります。)
以下ルールに関する記述を消した説明文
=========================
・CC(x)<=(目標値)の目標値判定で、クリティカル(決定的成功)/極限の成功(技能値の1/5以下で成功)/困難な成功(技能値の1/2以下で成功)/通常成功/失敗/ファンブル(致命的失敗)の自動判定を行います。
・ボーナスダイス、ペナルティダイスがある1D100の目標値判定は、それぞれCCの後に()をつけ判定します。
()の中はボーナスダイスなら1か2の数字、ペナルティダイスなら-1か-2の数字をつけます。0の場合はCCのみでも判定可能です。
例1)CC(2)<=30
Cthulhu7th:(1D100<=50)→ 66,46,6 → 6 → 極限の成功
例2)CC(-1)<=75
Cthulhu7th:(1D100<=75)→ 82,52 → 82 → 失敗
・組み合わせ判定 (CBR(x,y))
目標値 x と y で%ロールを行い、成功したかどうかを表示します。
例)CBR(50,20)
Cthulhu7th : (1d100<=70,20) → 22[困難な成功,失敗] → 部分的成功
・連射(フルオート)判定 (FAR(w,x,y,z)) ※掃射の際には、余分な弾を使う弾数から減らしてから使用するようにしてください。
wに使う弾数を、xに技能値を入れ、yに故障ナンバー、zにボーナス・ペナルティダイスの数字(-2~2)を入れることによって結果を算出します。ただし、wは1~100まで、x,zは1~100までの数字です。
使う弾数が0になった時点で、そのラウンドの連射が終了します。弾が余った場合、結果に表示されます。
ジャムが起きた場合、その段階で(ジャムの回の弾薬は消費せず)ロールを終了します。ジャムが起きず、ファンブルが起きた場合運の低い味方に命中します。
ダメージ算出は命中数と貫通数から各自で計算するようにお願いします。FAR(w,x,y)の形でも判定可能です。
例1)FAR(50,80,98,-1)
Cthulhu7th : ボーナス・ペナルティダイス[-1]
1回目: → 5, 15 → 極限の成功
2回目: → 50, 40, 30 → 通常成功
難易度が困難な成功に変更
3回目: → 29, 89, 99 → 致命的失敗ジャム
8発が命中、4発が貫通、残弾34発
・追記(英語の訳)
ファンブル:Fumble / 失敗:Failure / 通常成功:Regular success / 困難な成功:Hard success / 極限の成功:Extreme success / 決定的成功:Critical success
ボーナスダイス:Bonus Dice / ペナルティダイス:Penalty Dice / 連射:Full Auto
=================================
よろしくお願いします。
(添付ファイルに説明文のみ変更したファイルがあります。)
以下ルールに関する記述を消した説明文
=========================
・CC(x)<=(目標値)の目標値判定で、クリティカル(決定的成功)/極限の成功(技能値の1/5以下で成功)/困難な成功(技能値の1/2以下で成功)/通常成功/失敗/ファンブル(致命的失敗)の自動判定を行います。
・ボーナスダイス、ペナルティダイスがある1D100の目標値判定は、それぞれCCの後に()をつけ判定します。
()の中はボーナスダイスなら1か2の数字、ペナルティダイスなら-1か-2の数字をつけます。0の場合はCCのみでも判定可能です。
例1)CC(2)<=30
Cthulhu7th:(1D100<=50)→ 66,46,6 → 6 → 極限の成功
例2)CC(-1)<=75
Cthulhu7th:(1D100<=75)→ 82,52 → 82 → 失敗
・組み合わせ判定 (CBR(x,y))
目標値 x と y で%ロールを行い、成功したかどうかを表示します。
例)CBR(50,20)
Cthulhu7th : (1d100<=70,20) → 22[困難な成功,失敗] → 部分的成功
・連射(フルオート)判定 (FAR(w,x,y,z)) ※掃射の際には、余分な弾を使う弾数から減らしてから使用するようにしてください。
wに使う弾数を、xに技能値を入れ、yに故障ナンバー、zにボーナス・ペナルティダイスの数字(-2~2)を入れることによって結果を算出します。ただし、wは1~100まで、x,zは1~100までの数字です。
使う弾数が0になった時点で、そのラウンドの連射が終了します。弾が余った場合、結果に表示されます。
ジャムが起きた場合、その段階で(ジャムの回の弾薬は消費せず)ロールを終了します。ジャムが起きず、ファンブルが起きた場合運の低い味方に命中します。
ダメージ算出は命中数と貫通数から各自で計算するようにお願いします。FAR(w,x,y)の形でも判定可能です。
例1)FAR(50,80,98,-1)
Cthulhu7th : ボーナス・ペナルティダイス[-1]
1回目: → 5, 15 → 極限の成功
2回目: → 50, 40, 30 → 通常成功
難易度が困難な成功に変更
3回目: → 29, 89, 99 → 致命的失敗ジャム
8発が命中、4発が貫通、残弾34発
・追記(英語の訳)
ファンブル:Fumble / 失敗:Failure / 通常成功:Regular success / 困難な成功:Hard success / 極限の成功:Extreme success / 決定的成功:Critical success
ボーナスダイス:Bonus Dice / ペナルティダイス:Penalty Dice / 連射:Full Auto
=================================
Reply to Anonymous
7 years 7 months ago #1678
by たいたい竹流
たいたい竹流 replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
たいたい竹流です。
ダイスボットありがとうございます!
ただ説明文は、もっともっと簡潔で良いと思います。
ルールの説明自体は不要なわけですから(プレイする人はもちろんみんなルールブック買っているはずですしね!)
・判定 CC(x)<=(目標値) で判定。クリティカル/極限の成功/困難な成功/通常成功/失敗/ファンブルを自動判定。
これぐらいでよいかと。
あと、「極限の成功」のような用語の原語表現も知りたい所です。
でないと原文と対比することができなくなりますので。
ソースコード含めて、ちょっとこちらでもいじってみます。
ダイスボットありがとうございます!
ただ説明文は、もっともっと簡潔で良いと思います。
ルールの説明自体は不要なわけですから(プレイする人はもちろんみんなルールブック買っているはずですしね!)
・判定 CC(x)<=(目標値) で判定。クリティカル/極限の成功/困難な成功/通常成功/失敗/ファンブルを自動判定。
これぐらいでよいかと。
あと、「極限の成功」のような用語の原語表現も知りたい所です。
でないと原文と対比することができなくなりますので。
ソースコード含めて、ちょっとこちらでもいじってみます。
Reply to たいたい竹流
- Anonymous
-
Topic Author
7 years 7 months ago #1679
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
原語については、説明文の最後に使うだろうところを入れたのですが、それにさらにいくつか加えたものをここに書いておきます。
この単語の言語があった方がいい、というものがありましたら教えてもらえれば答えられると思います。
よろしくお願いします。
・追記(原語での表現)
ファンブル:Fumble / 失敗:Failure / 通常成功:Regular success / 困難な成功:Hard success / 極限の成功:Extreme success / 決定的成功:Critical success
ボーナスダイス:Bonus Dice / ペナルティダイス:Penalty Dice / 連射:Full Auto / 故障ナンバー:Malfunctions / 貫通:impale
原語については、説明文の最後に使うだろうところを入れたのですが、それにさらにいくつか加えたものをここに書いておきます。
この単語の言語があった方がいい、というものがありましたら教えてもらえれば答えられると思います。
よろしくお願いします。
・追記(原語での表現)
ファンブル:Fumble / 失敗:Failure / 通常成功:Regular success / 困難な成功:Hard success / 極限の成功:Extreme success / 決定的成功:Critical success
ボーナスダイス:Bonus Dice / ペナルティダイス:Penalty Dice / 連射:Full Auto / 故障ナンバー:Malfunctions / 貫通:impale
Reply to Anonymous
7 years 7 months ago #1680
by たいたい竹流
たいたい竹流 replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
たいたい竹流です。
失礼しました、末尾の英単語を完全に見落としてしまっていました…
別件ですが、テストデータを確認していたのですが、おそらく間違いと思われるパターンが2か所ありました。
Cthulhu7th : (1D100<=73) ボーナス・ペナルティダイス[2] > 20, 100, 50 > 100 > 致命的失敗
は
Cthulhu7th : (1D100<=73) ボーナス・ペナルティダイス[2] > 20, 100, 50 > 20 > 困難な成功
が正解で、
Cthulhu7th : (1D100<=80) ボーナス・ペナルティダイス[-2] > 100, 60, 50 > 60 > 通常成功
は
Cthulhu7th : (1D100<=80) ボーナス・ペナルティダイス[-2] > 100, 60, 50 > 100 > 致命的失敗
が正解だと思うのですが、認識あっていますでしょうか?
上記で認識で正しいのであれば、間違い箇所は判明していますので、こちらで修正かけておきます。
失礼しました、末尾の英単語を完全に見落としてしまっていました…
別件ですが、テストデータを確認していたのですが、おそらく間違いと思われるパターンが2か所ありました。
Cthulhu7th : (1D100<=73) ボーナス・ペナルティダイス[2] > 20, 100, 50 > 100 > 致命的失敗
は
Cthulhu7th : (1D100<=73) ボーナス・ペナルティダイス[2] > 20, 100, 50 > 20 > 困難な成功
が正解で、
Cthulhu7th : (1D100<=80) ボーナス・ペナルティダイス[-2] > 100, 60, 50 > 60 > 通常成功
は
Cthulhu7th : (1D100<=80) ボーナス・ペナルティダイス[-2] > 100, 60, 50 > 100 > 致命的失敗
が正解だと思うのですが、認識あっていますでしょうか?
上記で認識で正しいのであれば、間違い箇所は判明していますので、こちらで修正かけておきます。
Reply to たいたい竹流
- Anonymous
-
Topic Author
7 years 7 months ago #1681
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
連絡ありがとうございます。
たいたい竹流さんの認識で正しいようです。
第7版について私以上に詳しい方に尋ねましたところ、ボーナス(ペナルティ)ダイスは出目全体の結果のより良い(悪い)方を採用するといったルールということで、私の認識が間違っていたようでした。
大変申し訳ありません。
修正ありがとうございます。
追記
こちらでも修正した結果、テストデータの47番の「FAR(120,82,97,2)」の結果も間違っていました(申し訳ありません)。修正後、「FAR(120,82,97,-2)」にテストデータを直していただければ大丈夫だと思います。
連絡ありがとうございます。
たいたい竹流さんの認識で正しいようです。
第7版について私以上に詳しい方に尋ねましたところ、ボーナス(ペナルティ)ダイスは出目全体の結果のより良い(悪い)方を採用するといったルールということで、私の認識が間違っていたようでした。
大変申し訳ありません。
修正ありがとうございます。
追記
こちらでも修正した結果、テストデータの47番の「FAR(120,82,97,2)」の結果も間違っていました(申し訳ありません)。修正後、「FAR(120,82,97,-2)」にテストデータを直していただければ大丈夫だと思います。
Reply to Anonymous
- Anonymous
-
Topic Author
7 years 7 months ago #1682
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
ダイスボットの説明文なのですが、最初か最後の所に『暫定翻訳版』と書いていただけないでしょうか?
第6版のダイスボットでも最近まで基本ルールを間違って使用していたといった事件があったので、(Regular success や Extreme success の訳が 通常成功 や 極限の成功 で尤もなのかということもあり)翻訳ミスやより正しい翻訳があるかもしれないという意味でそういった言葉を追加していただけると助かります。
ダイスボットの説明文なのですが、最初か最後の所に『暫定翻訳版』と書いていただけないでしょうか?
第6版のダイスボットでも最近まで基本ルールを間違って使用していたといった事件があったので、(Regular success や Extreme success の訳が 通常成功 や 極限の成功 で尤もなのかということもあり)翻訳ミスやより正しい翻訳があるかもしれないという意味でそういった言葉を追加していただけると助かります。
Reply to Anonymous
7 years 7 months ago - 7 years 7 months ago #1683
by たいたい竹流
たいたい竹流 replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
たいたい竹流です。
暫定は良いですね。実際、本家の翻訳が出てきたときに邪魔してしまうのが一番避けたいところですから。
追記したいと思います。
あと、ほかにもテストデータで誤っている個所がありました。
Index: 52
Input:
FAR(38,82,97,2)
Expected:
Cthulhu7th : ボーナス・ペナルティダイス[2]
1回目: > 61, 71, 21 > 困難な成功
2回目: > 80, 70 > 通常成功
3回目: > 65 > 通常成功
4回目: > 15, 85 > 失敗
5回目: > 44, 14, 74 > 通常成功
15発が命中、0発が貫通、残弾0発
Result:
Cthulhu7th : ボーナス・ペナルティダイス[2]
1回目: > 61, 71, 21 > 困難な成功
2回目: > 80, 70 > 通常成功
3回目: > 65 > 通常成功
4回目: > 15, 85 > 失敗
5回目: > 44, 14, 74 > 通常成功
27発が命中、0発が貫通、残弾0発
Rands: 1/10, 6/10, 7/10, 2/10, 10/10, 8/10, 7/10, 5/10, 6/10, 5/10, 1/10, 8/10, 4/10, 4/10, 1/10, 7/10
修正後のソースコードの実行結果がこれです。
テストデータでは15発命中ですが、
正しい挙動では27発命中になるはずです。
命中回数のカウントを、間違って += ではなく = で上書きしている個所があったみたいですね。
テストデータを作るときは、正しい挙動を想定して網羅するようなデータを作らないと、
このあたりのパターンで躓くのですよねぇ。
参考までに、上記まで修正したソースとテストデータを添付しておきます。
(テストデータはいくつか追加もしてあります)
全体的に重複している処理が多かったのでゴリゴリと刈り込んだ形ですが、
ここまでで指摘した内容以外は特に問題は見当たりませんでした。
ちゃんとテストデータも粗方そろっていたので、ソースの添削も楽にできましたし、
初めて作ってこれなら、良い出来だと思います。素直に。
(フルオート処理とかヤヤコシイですからね。苦肉の後が見えて好きです!)
ソースはもう少し改良できる気がするので、
ダイスボットの解説文の修正と含めて、後でまた直してみます。
ではでは。
暫定は良いですね。実際、本家の翻訳が出てきたときに邪魔してしまうのが一番避けたいところですから。
追記したいと思います。
あと、ほかにもテストデータで誤っている個所がありました。
Index: 52
Input:
FAR(38,82,97,2)
Expected:
Cthulhu7th : ボーナス・ペナルティダイス[2]
1回目: > 61, 71, 21 > 困難な成功
2回目: > 80, 70 > 通常成功
3回目: > 65 > 通常成功
4回目: > 15, 85 > 失敗
5回目: > 44, 14, 74 > 通常成功
15発が命中、0発が貫通、残弾0発
Result:
Cthulhu7th : ボーナス・ペナルティダイス[2]
1回目: > 61, 71, 21 > 困難な成功
2回目: > 80, 70 > 通常成功
3回目: > 65 > 通常成功
4回目: > 15, 85 > 失敗
5回目: > 44, 14, 74 > 通常成功
27発が命中、0発が貫通、残弾0発
Rands: 1/10, 6/10, 7/10, 2/10, 10/10, 8/10, 7/10, 5/10, 6/10, 5/10, 1/10, 8/10, 4/10, 4/10, 1/10, 7/10
修正後のソースコードの実行結果がこれです。
テストデータでは15発命中ですが、
正しい挙動では27発命中になるはずです。
命中回数のカウントを、間違って += ではなく = で上書きしている個所があったみたいですね。
テストデータを作るときは、正しい挙動を想定して網羅するようなデータを作らないと、
このあたりのパターンで躓くのですよねぇ。
参考までに、上記まで修正したソースとテストデータを添付しておきます。
(テストデータはいくつか追加もしてあります)
全体的に重複している処理が多かったのでゴリゴリと刈り込んだ形ですが、
ここまでで指摘した内容以外は特に問題は見当たりませんでした。
ちゃんとテストデータも粗方そろっていたので、ソースの添削も楽にできましたし、
初めて作ってこれなら、良い出来だと思います。素直に。
(フルオート処理とかヤヤコシイですからね。苦肉の後が見えて好きです!)
ソースはもう少し改良できる気がするので、
ダイスボットの解説文の修正と含めて、後でまた直してみます。
ではでは。
Last Edit: 7 years 7 months ago by たいたい竹流.
Reply to たいたい竹流
7 years 7 months ago #1684
by たいたい竹流
たいたい竹流 replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ほかにも問題ありそうな個所発見しました。
動作修正していたら
Index: 38
Input:
FAR(30,1,98)
Expected:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 1 > 決定的成功
2回目: > 98, 88 > 致命的失敗ジャム
0発が命中、1発が貫通、残弾29発
Result:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 1 > 決定的成功
2回目: > 98, 88 > 致命的失敗ジャム
1発が命中、1発が貫通、残弾29発
Rands: 1/10, 10/10, 8/10, 9/10, 8/10
となりまして。
後者の
1発が命中、1発が貫通、残弾29発
が正しいですね。
技能レベル1の場合の最低1保障が貫通時には適用されていないのが問題でした。
自信はあるのですが、上記で認識あっているかは確認したいところです。
動作修正していたら
Index: 38
Input:
FAR(30,1,98)
Expected:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 1 > 決定的成功
2回目: > 98, 88 > 致命的失敗ジャム
0発が命中、1発が貫通、残弾29発
Result:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 1 > 決定的成功
2回目: > 98, 88 > 致命的失敗ジャム
1発が命中、1発が貫通、残弾29発
Rands: 1/10, 10/10, 8/10, 9/10, 8/10
となりまして。
後者の
1発が命中、1発が貫通、残弾29発
が正しいですね。
技能レベル1の場合の最低1保障が貫通時には適用されていないのが問題でした。
自信はあるのですが、上記で認識あっているかは確認したいところです。
Reply to たいたい竹流
7 years 7 months ago #1685
by たいたい竹流
たいたい竹流 replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
追加です。
Game type: Cthulhu7th
Index: 45
Input:
FAR(1,80,98)
Expected:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 5 > 極限の成功
0発が命中、1発が貫通、残弾0発
Result:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 5 > 極限の成功
1発が命中、1発が貫通、残弾0発
Rands: 5/10, 10/10
===========================
Game type: Cthulhu7th
Index: 66
Input:
FAR(1,99,-98) 故障ナンバーにマイナスがついている場合、絶対値を付ける処理の確認
Expected:
Cthulhu7th :
故障ナンバーは正の数です。マイナス記号を外します。
ボーナス・ペナルティダイス[0]
1回目: > 8 > 極限の成功
0発が命中、1発が貫通、残弾0発
Result:
Cthulhu7th :
故障ナンバーは正の数です。マイナス記号を外します。
ボーナス・ペナルティダイス[0]
1回目: > 8 > 極限の成功
1発が命中、1発が貫通、残弾0発
Rands: 8/10, 10/10
これも、両者とも Expectedが間違いで、Reusltが正しい挙動(貫通数は常に命中数に含まれる)だと思いますが、合っていますか?
Game type: Cthulhu7th
Index: 45
Input:
FAR(1,80,98)
Expected:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 5 > 極限の成功
0発が命中、1発が貫通、残弾0発
Result:
Cthulhu7th : ボーナス・ペナルティダイス[0]
1回目: > 5 > 極限の成功
1発が命中、1発が貫通、残弾0発
Rands: 5/10, 10/10
===========================
Game type: Cthulhu7th
Index: 66
Input:
FAR(1,99,-98) 故障ナンバーにマイナスがついている場合、絶対値を付ける処理の確認
Expected:
Cthulhu7th :
故障ナンバーは正の数です。マイナス記号を外します。
ボーナス・ペナルティダイス[0]
1回目: > 8 > 極限の成功
0発が命中、1発が貫通、残弾0発
Result:
Cthulhu7th :
故障ナンバーは正の数です。マイナス記号を外します。
ボーナス・ペナルティダイス[0]
1回目: > 8 > 極限の成功
1発が命中、1発が貫通、残弾0発
Rands: 8/10, 10/10
これも、両者とも Expectedが間違いで、Reusltが正しい挙動(貫通数は常に命中数に含まれる)だと思いますが、合っていますか?
Reply to たいたい竹流
- Anonymous
-
Topic Author
7 years 7 months ago #1686
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
ソースの添削ありがとうございます。
ループの内容もすっきりとなっていて、作成中に「またこの文章使うのか…簡略化できないかなー」と思っていた所がすっきりと簡略化されていて、変更後のソース見て感動いたしました(本当に)。
さて、
Index: 52
の結果についてですが、「15発が命中」で正しいです。
def hitLastBullet(bullet_count, hit_bullet_count)
if (bullet_count == 1)
#残弾1での最低値保障処理
hit_bullet_count += 1
else
hit_bullet_count += (bullet_count / 2.to_f).floor
end
return hit_bullet_count
end
のところがそれまでのhit_bullet_countにdef hitLastBulletの中での処理の結果を足しているという処理になっており、そこがおかしいのだと思われます。
(それまでのhit_bullet_countにdef hitLastBulletの中での処理の結果を上書きするのが正しいのだと思われます。
Index:52の4回目までのhit_bullet_countの12発に、def hitLastBulletの中のhit_bullet_countの結果15発が足されているため、5回目までのhit_bullet_countが27発になってしまってっているのだと思われます。)
自分が修正すると、また余分に長い文章が加わってしまうと思いましたので、とりあえず間違っている(であろう)箇所の特定のみをいたしました。
大変申し訳ありませんが、修正お願いいたします。
Index:38,45,66については(まだソースを読むのが遅いので)、また後で連絡いたします。
ソースの添削ありがとうございます。
ループの内容もすっきりとなっていて、作成中に「またこの文章使うのか…簡略化できないかなー」と思っていた所がすっきりと簡略化されていて、変更後のソース見て感動いたしました(本当に)。
さて、
Index: 52
の結果についてですが、「15発が命中」で正しいです。
def hitLastBullet(bullet_count, hit_bullet_count)
if (bullet_count == 1)
#残弾1での最低値保障処理
hit_bullet_count += 1
else
hit_bullet_count += (bullet_count / 2.to_f).floor
end
return hit_bullet_count
end
のところがそれまでのhit_bullet_countにdef hitLastBulletの中での処理の結果を足しているという処理になっており、そこがおかしいのだと思われます。
(それまでのhit_bullet_countにdef hitLastBulletの中での処理の結果を上書きするのが正しいのだと思われます。
Index:52の4回目までのhit_bullet_countの12発に、def hitLastBulletの中のhit_bullet_countの結果15発が足されているため、5回目までのhit_bullet_countが27発になってしまってっているのだと思われます。)
自分が修正すると、また余分に長い文章が加わってしまうと思いましたので、とりあえず間違っている(であろう)箇所の特定のみをいたしました。
大変申し訳ありませんが、修正お願いいたします。
Index:38,45,66については(まだソースを読むのが遅いので)、また後で連絡いたします。
Reply to Anonymous
- Anonymous
-
Topic Author
7 years 7 months ago #1687
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
少し頭の中が混乱していたようで、見当違いな返信をしてしまい、大変申し訳ありませんでした。
312行目の
hit_bullet_count += hitLastBullet(bullet_count, hit_bullet_count)
は
hit_bullet_count = hitLastBullet(bullet_count, hit_bullet_count)
で大丈夫なようです。
総合して、おっしゃっていた要修正箇所は(文量的に)少ないようなので、こちらで修正してまたお渡しいたします。
よろしくお願いします。
少し頭の中が混乱していたようで、見当違いな返信をしてしまい、大変申し訳ありませんでした。
312行目の
hit_bullet_count += hitLastBullet(bullet_count, hit_bullet_count)
は
hit_bullet_count = hitLastBullet(bullet_count, hit_bullet_count)
で大丈夫なようです。
総合して、おっしゃっていた要修正箇所は(文量的に)少ないようなので、こちらで修正してまたお渡しいたします。
よろしくお願いします。
Reply to Anonymous
7 years 7 months ago #1688
by たいたい竹流
たいたい竹流 replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
たいたい竹流です。
Indx: 52
が15発になる件、了解しました。
あくまで通常命中は半数が当たるだけなのですね。
この点を勘違いしてテストデータ読んでしまっていました。
併せて、追加で質問を出していた、
Index: 38
Index: 45
Index: 66
も確認してみたところ、こちらも考え違いをしていました。
通常命中には貫通を含める(つまり通常0、貫通1は不正で、通常1、貫通1というカウントになる)
と思い込んでいましたが、それぞれ独立した計算で問題ないわけですね。
大変失礼いたしました。
お恥ずかしい限りです。。。。
お手数をお掛けいたしました。
Indx: 52
が15発になる件、了解しました。
あくまで通常命中は半数が当たるだけなのですね。
この点を勘違いしてテストデータ読んでしまっていました。
併せて、追加で質問を出していた、
Index: 38
Index: 45
Index: 66
も確認してみたところ、こちらも考え違いをしていました。
通常命中には貫通を含める(つまり通常0、貫通1は不正で、通常1、貫通1というカウントになる)
と思い込んでいましたが、それぞれ独立した計算で問題ないわけですね。
大変失礼いたしました。
お恥ずかしい限りです。。。。
お手数をお掛けいたしました。
Reply to たいたい竹流
- Anonymous
-
Topic Author
7 years 7 months ago #1689
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
修正終わりました。
Index:38,45,66についてはExpectedで正しいようです。
第7版だと
命中のダメージは、(通常武器ダメージ)を(命中数回)算出なのですが
貫通のダメージは、(通常武器ダメージの最大値+通常武器ダメージ)を(貫通数回)算出なので
フルオートのダイスボットでの処理は命中数と貫通数は別扱いで算出する形にしております。
分かりにくくて申し訳ないです。
また、ルールブックを見直したところ、
決定的成功のレベルでないと成功しないという場合(難易度が決定的成功)は、「どんなに良い結果でも難易度が決定的成功の場合は、命中のみで貫通はしない」と書かれていたので、 def getSuccessListImpaleBulletListの3回目の処理の successList と impaleBulletList を変更しました。(また、それに合わせてIndex:55を変更しました)
大前提のルール把握のミスすみませんでした。
以下に修正箇所を記します。
========================================
312行目の
hit_bullet_count += hitLastBullet(bullet_count, hit_bullet_count)
↓
hit_bullet_count = hitLastBullet(bullet_count, hit_bullet_count)
369、370行目の
successList = []
impaleBulletList = ["決定的成功"]
↓
successList = ["決定的成功"]
impaleBulletList = []
テストデータ Index:55 (424行目)の
28発が命中、8発が貫通、残弾8発
↓
28発が命中、4発が貫通、残弾8発
修正終わりました。
Index:38,45,66についてはExpectedで正しいようです。
第7版だと
命中のダメージは、(通常武器ダメージ)を(命中数回)算出なのですが
貫通のダメージは、(通常武器ダメージの最大値+通常武器ダメージ)を(貫通数回)算出なので
フルオートのダイスボットでの処理は命中数と貫通数は別扱いで算出する形にしております。
分かりにくくて申し訳ないです。
また、ルールブックを見直したところ、
決定的成功のレベルでないと成功しないという場合(難易度が決定的成功)は、「どんなに良い結果でも難易度が決定的成功の場合は、命中のみで貫通はしない」と書かれていたので、 def getSuccessListImpaleBulletListの3回目の処理の successList と impaleBulletList を変更しました。(また、それに合わせてIndex:55を変更しました)
大前提のルール把握のミスすみませんでした。
以下に修正箇所を記します。
========================================
312行目の
hit_bullet_count += hitLastBullet(bullet_count, hit_bullet_count)
↓
hit_bullet_count = hitLastBullet(bullet_count, hit_bullet_count)
369、370行目の
successList = []
impaleBulletList = ["決定的成功"]
↓
successList = ["決定的成功"]
impaleBulletList = []
テストデータ Index:55 (424行目)の
28発が命中、8発が貫通、残弾8発
↓
28発が命中、4発が貫通、残弾8発
Reply to Anonymous
- Anonymous
-
Topic Author
7 years 7 months ago #1690
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
修正後のデータ添付し忘れていました。
修正後のデータ添付し忘れていました。
Reply to Anonymous
7 years 7 months ago #1691
by たいたい竹流
たいたい竹流 replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
たいたい竹流です。
ソースコードのリファクタリング、もう少し突き詰めてみました。
その関係上、処理を簡素化するためフルオートで弾丸0発の場合の出力をエラーに変更しました。
(正の数ってことですし、0発は不正でよいかとも思いまして)
あとは、説明文を簡素化してみました。
ルールの解説はばっさりカットし、最低限のコマンド説明のみにしてあります。
これで問題ないようであれば、次回リリースに同梱したいと思います。
ソースコードのリファクタリング、もう少し突き詰めてみました。
その関係上、処理を簡素化するためフルオートで弾丸0発の場合の出力をエラーに変更しました。
(正の数ってことですし、0発は不正でよいかとも思いまして)
あとは、説明文を簡素化してみました。
ルールの解説はばっさりカットし、最低限のコマンド説明のみにしてあります。
これで問題ないようであれば、次回リリースに同梱したいと思います。
Reply to たいたい竹流
- Anonymous
-
Topic Author
7 years 7 months ago #1692
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
ソースコードと説明分ですが、これで問題ないと思います。
初めてここにあげた時は500行もあった私のややこしいソースコードが綺麗な形に仕上がり、うまく動作しているのを見て、改めて感動いたしました。
また、ここまで共にクトゥルフ神話第7版のダイスボットを作成してくださり、本当にありがとうございます。
リリース楽しみにお待ちしております。
追記:
リリース後に、(おそらく)7版についての質問がTwitterの方であるかと思いますが、そちらの方は私の方で対応させていただこうと思います。
フォローさせていただいてます『ニャル提督 @kruschtya』の方で対応しようと思いますので、もし何かたいたい竹流の方に(訳やボットに使用しているルールの掲載ページ、7版について等々)答えられない質問などが寄せられましたら、(あるいはTwitterでのリリース報告時などに私のアカウント名追記で)こちらに投げてもらって大丈夫です。
ソースコードと説明分ですが、これで問題ないと思います。
初めてここにあげた時は500行もあった私のややこしいソースコードが綺麗な形に仕上がり、うまく動作しているのを見て、改めて感動いたしました。
また、ここまで共にクトゥルフ神話第7版のダイスボットを作成してくださり、本当にありがとうございます。
リリース楽しみにお待ちしております。
追記:
リリース後に、(おそらく)7版についての質問がTwitterの方であるかと思いますが、そちらの方は私の方で対応させていただこうと思います。
フォローさせていただいてます『ニャル提督 @kruschtya』の方で対応しようと思いますので、もし何かたいたい竹流の方に(訳やボットに使用しているルールの掲載ページ、7版について等々)答えられない質問などが寄せられましたら、(あるいはTwitterでのリリース報告時などに私のアカウント名追記で)こちらに投げてもらって大丈夫です。
Reply to Anonymous
- Anonymous
-
Topic Author
7 years 7 months ago #1693
by Anonymous
Anonymous replied the topic: クトゥルフ神話TRPG第7版のダイスボットとテストデータ
ニャル提督です。
私の一つ前の投稿の追記で、たいたい竹流さんに敬称を付け忘れるミスがありました。
申し訳ないです。
私の一つ前の投稿の追記で、たいたい竹流さんに敬称を付け忘れるミスがありました。
申し訳ないです。
Reply to Anonymous
Time to create page: 0.223 seconds