つづき
4.プログラムソース
(1)プログラムソースを最後に示す(長いので)。
(2)プログラムの考え方メモ
(A)ユニット画像は、所定の位置に移動(set_offset)したら、
表示中の全レイヤーとマージ(merge_visible_layers)する。
処理中は、マージされた背景図とユニット画像しかない。これは、
処理の単純化と、他に良い方法が見つからなかった為である。
(B)ユニットの指揮官は、部隊とは20画素だけ離す。これは、
見やすくする為である。部隊は1行6列を基本とする。
(C)ユニットの並びは、指揮官ー砲兵ー騎兵ー歩兵を前提にする。
歩兵とそれ以外は行を分ける(個人的に見やすくする為)。
(D)連隊と大隊との関係を密にするため、連隊が指揮官を除いた
並びで4列以降にあれば、改行する。これは、一般的に1連隊が
2ケ大隊以上から構成されるので、同じ行に大隊を表示できなくなる
ことを避けるためである。
(E)自動的には改行が難しい場合は、ユニット情報のL列目に”cr”の
文字を入力する。プログラムは、この文字が入っているユニットが
あれば、直ぐに改行して表示する。
例)フランス軍第5軍団第18師団のアイルランド軍第3連隊第1大隊
<個人的な感想>
python-fu固有の関数(set_offsetなど)はprint文に置き換えて、
Anaconda+JupyterNotebook+Python3の環境下で開発を行った。
ここでエラーを対策しておけば、python-fu固有の関数にデバッグを
集中できるので、効率が良い。
初めからpython-fu環境下で開発していたら、1週間経っても
完成しなかったと感じる・・・。