敵戦車AIを機械学習で強化するまで

🎯 設計方針

基本コンセプトと位置づけ

機械学習対応のポイント

  1. 全パラメータをConfigクラスに集約
  2. 詳細なログデータ収集
  3. 報酬関数の明確な定義
  4. 再現可能な評価環境

※用語補足

Etank:PC側が操作する戦車 eTanks:全Etankアレイリスト

Ftank:プレーヤー側の戦車  fTanks:全Ftankアレイリスト

📦 1. アーキテクチャ

入出力は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           // 学習データ記録