anchor.diff:      procedure UpdateState; // Call to update evaluation
   
       property EnemiesCount : integer read GetEnemiesCount;
  -    property Evaluations[Index:TPlayerIndex]:PKMEvaluation read GetEvaluationByIndex;
  +    property Evaluations[Index:TPlayerIndex]:TKMEvaluation read GetEvaluationByIndex;
   
     end;
   
  
positive.code: 
  { TKMArmyEvaluation assets}
  
  function TKMArmyEvaluation.GetEnemiesCount : Integer;
  begin
    Result := fEnemies.Count;
  end;                   
  
  function TKMArmyEvaluation.GetEvaluationByIndex(Index : TPlayerIndex) : PKMEvaluation;
  begin
    Assert(Index <= MAX_PLAYERS);
    Result := @fEvals[Index];
  end;
  
  procedure TKMArmyEvaluation.ResetEvaluation;
  var i : TPlayerIndex;
      Res : PKMEvaluation;
  begin
    for i := 0 to MAX_PLAYERS do begin
      Res := @fEvals[i];
      Res.EmemyIndex := i;
      Res.VictoryChance := 0.0;
      Res.Power := 0.0;
      FillChar(Res.UnitTypesPower, SizeOf(Res.UnitTypesPower), #0);
    end;
  end;
  
  procedure TKMArmyEvaluation.EvaluateChance(Stats : TKMPlayerStats; PlayerIndex : TPlayerIndex);
  var
    Res : PKMEvaluation;
  begin
    Res := @fEvals[PlayerIndex];
    Res.VictoryChance := 1.0;
  end;
  
  procedure TKMArmyEvaluation.EvaluatePower(Stats : TKMPlayerStats; PlayerIndex : TPlayerIndex);
  var
    Res : PKMEvaluation;
  begin
    Res := @fEvals[PlayerIndex];
    Res.Power := 1.0;
  end;
  
  constructor TKMArmyEvaluation.Create(SelfPlayer : TObject);
  begin
    inherited Create;
    if not(SelfPlayer is TKMPlayer) then fSelfPlayer := nil
    else fSelfPlayer := SelfPlayer;
    fEnemies := TObjectList.Create(false); // false - Container will not controls the memory. See TObjectList
    ResetEvaluation;
  end;
  
  destructor TKMArmyEvaluation.Destroy;
  begin
    FreeThenNil(fEvals);
    FreeThenNil(fEnemies);
    inherited;
  end;
  
  function TKMArmyEvaluation.AddEnemy(Player : TObject) : Integer;
  
negative.code:     fEvals : array [0..MAX_PLAYERS] of TKMEvaluation; // Results of evaluetion (PKMEvaluation)
  
      function GetEnemiesCount : integer;                              
      function GetEvaluationByIndex(Index : TPlayerIndex) : TKMEvaluation;
      procedure ResetEvaluation; // Reset to default                            
      procedure EvaluateChance(Stats : TKMPlayerStats; PlayerIndex : TPlayerIndex);
      procedure EvaluatePower(Stats : TKMPlayerStats; PlayerIndex : TPlayerIndex);
  