private float GetFitness(IChromosome c) { AiSettingsChromosome chromosome = (AiSettingsChromosome)c; int aiSettings = chromosome.ToInt(); AiEvolutionaryAlgorithmData toDelete = null; float fitness = 0; foreach (AiEvolutionaryAlgorithmData data in settingsScoreData) { if (data.aiSettings == aiSettings) { fitness = data.score; toDelete = data; } } float maxScore = ScoreManager.Instance.GetTheHighestScoreValue(); float playerScore = ScoreManager.Instance.GetScore(0); fitness = fitness / maxScore; playerScore = playerScore / maxScore; fitness = 1 - Math.Abs(playerScore - fitness); if (toDelete != null) { settingsScoreData.Remove(toDelete); } return(fitness); }
private float GetHistoryFitness(IChromosome c) { AiSettingsChromosome chromosome = (AiSettingsChromosome)c; int aiSettings = chromosome.ToInt(); float fitness = 0; AiEvolutionaryAlgorithmData toDelete = null; foreach (AiEvolutionaryAlgorithmData data in settingsScoreData) { if (data.aiSettings == aiSettings) { fitness = data.score; toDelete = data; } } if (toDelete != null) { settingsScoreData.Remove(toDelete); } return(fitness); }