既存のVASSALモジュールであるライプツィヒの戦いから
基本情報を作成しようとしたら、エラーが生じた。原因は、
指揮官、砲兵、騎兵、歩兵のどれでもないユニットがある為である。
具体的には、工兵(オーストリア軍第2軍団に含まれる)が該当する。
後の為に、対策をメモしておく。
1.原因
(1)工兵のXML文の構造が、指揮官、砲兵、騎兵、歩兵と違う。
下記のようにデータの有無が違う。砲兵に近いが、裏画像がないので、その部分に違いが生じる。
諸元データ | 戦力 | 裏画像 | 備考 | |
工兵 | なし | あり | なし | |
歩兵 | あり | あり | あり/なし | 軽歩兵は裏画像あり |
騎兵 | あり | あり | あり/なし | 軽騎兵は裏画像あり |
砲兵 | なし | あり | あり | |
指揮官 | あり | なし | なし |
(補足)
舟橋中隊も、指揮官、砲兵、騎兵、歩兵と違う。しかし、データの有無が砲兵と同じなので、
砲兵として正常に読み込まれる。裏画像に舟橋を指定した為で、もし指定しなければ、
工兵と同じにエラーとなった。
2.対策
(1)ユニットの種別判定では、砲兵と同じになる。そこで、砲兵の処理内で扱う。
(2)砲兵の検索で見つからない場合の処理を追加する。
(3)上記(2)の場合に、工兵用の検索を行ない、データを取得する。
(4)ユニット種別として、5pioを工兵用に追加する。
変更前(下図の左側)と変更後(下図の右側)のプログラムの違いを以下に示す。
(A)初期設定
(B)砲兵処理
対策版のプログラムは公開しない。理由は、一時的にしか使わない為である。
ユニット種別を増やすと、他のプログラムも改修する必要がある。
余り使わないユニットの為に、そこまでする必要はないと考えた。
ユニット基本情報を作成した後は、ユニット種別を砲兵に変えて、裏画像を指定する。
これは、舟橋中隊と同じように扱うようにする為である。
<個人的な感想>
Anaconda+JupyterNotebookの開発環境が良いので、プログラムの
どこでエラーが生じたか、その時のデータ内容は何かが直ぐに分かる。
その為、改修がしやすい。