示例#1
0
        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);
        }
示例#2
0
        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);
        }