獲得ゴールドの計算
ファミコン版ドラゴンクエスト2の、戦闘終了時に得られるゴールドの計算方法について解説します。
概要
ファミコン版ドラクエ2の戦闘終了時に得られるゴールドは、倒した敵モンスターのゴールドの合計で固定というわけではなく、ランダムでバラつくようになっています。
計算方法
倒した敵のゴールドの合計をG、0から255のいずれかの値を取る乱数(一様分布)を[0~255]と表すと、戦闘終了時に得られるゴールドは以下の式で表されます(割り算は小数部分切り捨て)。
G - (G / 4 * [0~255] / 256)
要するに獲得ゴールドは、最大値はGそのもの、最小値はGの約75%で、概ね一様分布をとります。平均値は当然Gの約7/8(87.5%)です。
以下、特殊なケースでの獲得ゴールドについて解説します。
敵がゴールドをドロップした場合
ファミコン版ドラクエ2では、アイテムの代わりにゴールドをドロップするケースがあります。その場合、Gの値を倍にして上式の獲得ゴールド計算がなされ、結果として通常の約2倍のゴールドが得られます。なお、このケースで戦闘終了時に得られるゴールドは全て宝箱の中に入っていたこととなります。
上限は65535
変数Gの最大値は65535となっており、敵を倒し続けてもGはそれ以上には増えないようになっています。よって一度の戦闘で得られる最大ゴールドは65535です。なお、Gの値がオーバーフローして0に戻ることもありません。
オーバーフローするケース
ただしGの値が32768以上のときに敵がゴールドをドロップすると、Gの値を2倍にする処理でオーバーフローが発生して獲得ゴールドがおかしくなります。もっとも、Gの値が32768以上になることはまずないと思います。