忍者ブログ

DQRTA資料室

Home > ブログ > DQ1

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SFC版DQ1 勝率計算ツール

今までこちらのブログにて、死神の騎士や悪魔の騎士に関する勝率に関する
記事を投稿させて頂きました。

次に計算したいのは竜王戦の勝率に関してだったのですが、
Excelで計算するのにはさすがに限界を感じました。

そこでプログラムを組んで自動計算させてみてはどうか?

今回のツール作成の経緯は以上です。

そこから約1ヶ月かけてプログラミングの勉強を開始し、
とりあえず各モンスターごとの勝率計算ツールを完成させることができました。

↓リンク

SFC版DQ1 勝率計算ツール

色々と書き方等に突っ込みどころがあるかと思いますが、
せっかく作成したので公開したいと思います。

以下、ツールの説明です。

使い方

①勝率計算を行いたいモンスターを選択
  ※最低限モンスターを選択しないと固まりますのでご注意ください。
②勇者のレベルを選択
③勇者の装備、種等の条件を選択
④「勝率計算!」ボタンをクリック!
⑤勝率やその他データが表示されます。

ちなみに試行回数は10万回です。
「勝率計算!」ボタンをクリックするたびに、
選択した条件で戦闘シミュレーションが行われ、結果が表示されます。

したがって、同じ条件で何度かクリックすると、
計算結果が若干変わることを確認できるかと思います。

戦闘方針

勇者はただ殴り続けるのみです。
回復やギラ等は行いません。
また、全てのシミュレーションをいわゆる力・HP型で行います。


敵はゲームの仕様通りに行動します。

例えば「ヘルゴースト」は下記のような確率で行動をとります。

・攻撃: 37.50%
・ギラ: 25.00%
・マホトーン: 12.50%
・ラリホー: 12.50%
・逃げる: 12.50%

しかし、勇者が魔封じ状態の場合はマホトーンは選択されず、
眠っている場合はラリホーが選択されません。
また、「逃げる」は勇者のレベルが15以上の時のみ選択されるようになります。

以上の仕様は全てプログラムに組み入れているつもりです。
(ミスがなければ…。)

もちろん、ホイミ・ベホイミに関しても一定HP以下の時のみ使用するようにしています。
(メーダロードは除く)

ダメージ計算に関して

物理ダメージ等はkri様の解析結果をそのまま反映しました。

また、ギラ・火の息・敵の回復量等に関しては、
bamboo様の【SFC版DQ12敵の呪文・炎などのダメージ分布】を参考にしています。

こちらに関しては少し難しいので解説を加えます。

例えばギラのダメージは6~12です。

ここで6~12が出るサイコロがあるとします。

このサイコロを複数回振り、その平均が実際のダメージになるように
内部で計算されているようです。

ちなみにサイコロを振る回数は1,2,4,8回のいずれかで、
それはフレーム数によって決定されるようです。

よって中央値がでやすくなっているんですね。

これをプログラムでごり押しで計算させています。

ちなみに今回は関係ありませんが、勇者の回復量は等確率のようです。

その他考慮に入れているもの

○勇者の会心の一撃

○勇者の回避

○敵の回避

○眠り率&眠り解除率
 (ターン数が加算される度に勇者は起きやすくなります)
 参考:kri様の解析結果

○マホトーンが効く確率

○先攻率・後攻率
 参考:kri様の解析結果

妥協している点

考慮に入れていないものは2点あります。

①敵のHPのブレ
 モンスターはHP10以上であれば最大HPの80~100%でブレ、
 それ未満であれば、最大HP毎に設定があるのですが、
 今回は全て最大HPで出現することになっています。

 したがって、実際の勝率は計算結果より若干上がるはずです。

②行動の選択率

 Shingo Endo様の解析データを見ると、
 8つの行動から毎ターン行動が選択されているようです。
 
 しかし、行動が選択されても条件によっては実行できない場合があります。
 (例えば勇者が眠っているのにラリホーは選択されない)
 
 bamboo様の記事にあるように、実行できない行動が選択された場合は、
 もう1度行動選択が行われ、これを最大8回まで行われます。
 
 8回までに実行できる行動が選択されない場合は、
 強制的に「攻撃」が選択されるようです。

 しかし、今回のシミュレーションでは「最大8回まで」が考慮されておりません

 つまり、実行できる行動が選択されるまで、無制限に繰り返すようになっています。

最後に

以上のように、極力実際のゲームの仕様に近づけるように努力していますが、
妥協しているところはしています。

また、一部仕様に関する解釈の違いや、プログラムコードの書き方に間違いがあるかもしれません。

その時はできるだけ優しく教えて頂けると助かります。

また、プログラミングを勉強するきっかけとなった竜王戦シュミレーションですが、
C言語で作成したために、Webで公開できません。

機会があればJavaScriptで書き直したいと思っております。

今後も役立つツールを開発していけたらと思いますので、お楽しみに!



※なお、原作者(Emilio)は本プログラムに関していかなる保証も行いません。また、本プログラムの出力結果の内容の正当性についてもいかなる保証も行いません。さらに、本プログラムを利用したことによって発生した損害に対する責任も負わないものとしますのでご容赦ください。
PR

PAGE TOP