つづき
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週間経っても
 完成しなかったと感じる・・・。