void EvaluateRun() { List <int> numFlockColision = new List <int>(); List <int> numObjectColision = new List <int>(); //Initialize values for (int i = 0; i < generationSize; i++) { numFlockColision.Add(0); numObjectColision.Add(0); } //Find number of colisions per flock int numAgents = flockManager.flockAgents_ECS_FW.Length; int numAgentsOnSwarm = numAgents / generationSize; for (int i = 0; i < numAgents; i++) { FlockWho agent = flockManager.flockAgents_ECS_FW[i]; numFlockColision[agent.flockManagerValue] += agent.flockCollisionCount; numObjectColision[agent.flockManagerValue] += agent.objectCollisionCount; } // Make the score for (int i = 0; i < generationSize; i++) { float meanFlockColision = (float)numFlockColision[i] / (float)numAgentsOnSwarm; float meanObjectColision = (float)numObjectColision[i] / (float)numAgentsOnSwarm; float score = meanFlockColision + meanObjectColision; scoreSum[i] += score; } currentEvaluation++; flockManager.RestartFlocks(); }