Phase 1: ルールベースAI(手動パラメータ調整) EnemyAI.java
Phase 2: スコアベースAIの開発(パラメータ最適化(機械学習)
ここまでで、EnemyAIと差し替えて動作するEnemyAI2.javaが完成
Phase 3: 行動選択の学習(強化学習)
※用語補足
Etank:PC側が操作する戦車 eTanks:全Etankアレイリスト
Ftank:プレーヤー側の戦車 fTanks:全Ftankアレイリスト
入出力はEnemyAIクラスと同じ(差し替え可能とする)
メソッドリスト
public int takeTurn(Etank,fTanks) //EnemyAIと同じ。外部とのインターフェイス
private void StateAnalyzer(Etank,fTanks)//情報を集め、BattleStateクラスに格納
private int ThreatEvaluator(); //BattleStateクラスの情報をもとに行動を判断
private Tank selectTarget(Etank, fTanks) //上位互換を維持しつつ、新AIに対応
EnemyAI2
├── AIConfig // 学習対象パラメータ
├── StateAnalyzer // 情報収集
├── ThreatEvaluator // 行動判断要素算出
├── (ActionSelector) // 現状、行動を選択して実行するのはEnemyAI2本体
└── BattleLogger // 学習データ記録