強化した支援ツールの問題点と良い点

第5次ノイマルクトの戦いのプレイ中に気がついた強化版支援ツールの問題点と
良い点を以下にメモしておく。

1.問題点
(1)ちょっとしたミスでエラーが発生し、その後始末が煩雑である。
   下図のようにエラーが出ると、PythonからEXCELを動かした場合のエラーの対応
   記載したようにEXCELを終了させてもゾンビプロセスが残る。
   これを見つけて終了させるのに手間がかかる。

(2)入力するEXCELシートと起動するPythonプログラムとの対応が分かりにくい。
   慣れるまでは不整合によるエラーが出て上記の問題に巻き込まれる。

(3)Pythonプログラムのバグが残っている。
   不具合再現と対策に時間がかかる。上記(1)の問題の影響で効率が悪い。

(4)ユニット数が多くなると色々な希望が増えてくる。
   例1)キー情報から自動設定できるデータを増やしたい。
   例2)未入力のデータはプログラムで0に変換・処理して欲しい。
   例3)エラーから再開する場合に必要最小限の手順で済ましたい。

2.対策
(1)ゾンビプロセスが残る問題
   下図の処理をpythonで行うと残らない。

(2)ゲームフェーズと使用するEXCELシート、pythonプログラムを明記する。

ゲームフェーズEXCELシートpythonプログラム
騎兵突撃1)pre_art 対象は士気
2)mor
3)pre_art 対象は白兵戦
4)mel
5)pre_art 対象は騎兵呼戻
1)# シート準備  prefire()
2)# 標準士気チェック morale()
3)# シート準備 prefire()
4)# 白兵戦 melee()
5)# シート準備 prefire()
敵軍の防御射撃1)pre_art 対象は砲撃か歩兵射撃
2)artかinf
1)# シート準備 prefire()
2)# 砲兵射撃 gun_fire()か# 歩兵射撃 fire_inf()
自軍の攻勢射撃1)pre_art 対象は砲撃
2)art
3)pre_art 対象は歩兵射撃
4)inf
1)# シート準備 prefire()
2)# 砲兵射撃 gun_fire()
3)# シート準備 prefire()
4)# 歩兵射撃 fire_inf()
白兵戦1)asl
2)asl
3)mel
4)mel
1)# 歩兵データコピー fire_copy()
2)# 白兵戦前の士気チェック premelee_check()
3)# 白兵戦データコピー check_copy()
4)# 白兵戦 melee()
回復1)pre_art 対象は士気
2)mor
1)# シート準備  prefire()
2)# 標準士気チェック morale()

(3)バグ対策は地道に潰すしかない。

(4)なるべく希望に応えるようにプログラムを改修していく。
   例1)2)対策済。
   例3)ではEXCEL再起動後に下図の処理をすれば再開できる(pythonプログラムは動かしたまま)。

3.良い点
  下図のような5ケ所の射撃戦をデータ入力してから6秒で判定できる。

  pre_art 対象は歩兵射撃とする。

  infの内容。色塗り部分と目標数は自動的に設定する。
  地形防御値、現在の戦力数、隊形を手動で入力すれば完了である。

  歩兵射撃 fire_inf()の処理時間(秒)。
  なお、目標に損失が出れば国籍・兵種に応じて士気チェックを自動的に行う。

4.参考資料
  下記のWEBページにお世話になりました。ありがとうございます。
 ・PythonとxlwingsでExcelファイルをいじる

<個人的な感想>
かなり便利になったが、それでもデータ入力項目は残るので手間がかかる。
またpythonプログラムとEXCELを両方使うので操作が煩わしく感じる。
なかなか良いものを作るのは難しい。

完成版のプログラムを下記に示す。