バタイユゲーム支援ツール強化版にベルリン戦役対応の改修を行った。
天候変化の追加と無駄な乱数の発生防止である。
1.天候変化
ベルリン戦役の天候ルールについて(1)と(2)を実現するために、下図のように条件を追加した。
D,E欄は2つの賽の目、F欄は10進数に変換した値、G欄はA欄の数値部分とF欄の値を結合したもの。
F欄の値で発生確率が決まる。乱数の値(1から36の範囲)とF欄を比較して天候を決める。
例)Grossbeerenの場合
乱数が1から6なら雨(確率6/36)、7から15なら小雨(確率9/36)、
16から18なら激しい雨(確率3/36)、19から36なら晴(確率18/36)。
2.無駄な乱数の発生防止
上記改修の動作確認の際に、乱数が思っていたよりも多く変動することに気付いた。
そこでプログラムを見直して”結果的に使わない乱数”を発生させないようにした。
(1)時刻(分)を進ませる処理
天候が可変の場合に限り乱数を発生させる。下図矢印のように命令文を移動した。
(2)増援の判定処理 →時刻(分)を進ませる処理から呼ばれる
遅延区分が0以外の時(増援の時刻が可変になる)に限り乱数を発生させる。
下図のように条件を追加した。
<個人的な感想>
後から見ると無駄な処理をしている場合がある。
その時は、処理を実現する事が目標で効率は余り気にしていなかったと思う。
処理時間が気になったら調べて改修するしかない。
今更全てのプログラムを見直す気力はないので・・・。