public void FindBestData() { List <GenomeScore> bestScores = new List <GenomeScore>(); for (int i = 0; i < m_instanceCount; i++) { GenomeScore score = new GenomeScore(m_instances[i].GenomeData, m_results[i]); if (bestScores.Count < m_surviveCount) { bestScores.Add(score); } else { for (int e = 0; e < bestScores.Count; e++) { if (score.score > bestScores[e].score) { bestScores.Insert(e, score); bestScores.RemoveAt(bestScores.Count - 1); break; } } } } m_currentGenomes.Clear(); for (int i = 0; i < bestScores.Count; i++) { m_currentGenomes.Add(bestScores[i].genome); } }
public GenomeScore ExtractBestData() { GenomeScore genomeScore = new GenomeScore(m_instances[0].GenomeData, m_results[0]); for (int i = 1; i < m_instanceCount; i++) { if (m_results[i] > genomeScore.score) { genomeScore = new GenomeScore(m_instances[i].GenomeData, m_results[i]); } } return(genomeScore); }