// Use this for initialization void Start() { Screen.SetResolution(80, 80, false); Application.targetFrameRate = 15; evolver = GameObject.Find("Evolution Controller").GetComponent <EvolutionController>(); evoManager = new EvolutionInfoManager(); evoManager.ReadInfo(); if (evoManager.Initial()) { // The first game of the first iteration evoManager.Population = evolver.InitializeRandomPopulation(evoManager.N); evoManager.InitializePopulationQueue(); evoManager.WritePopulation("population.csv"); } else if (evoManager.SelectBest()) { evoManager.ReadPopulation("population.csv"); List <PhenoType> best = Selection(); evoManager.Population = best; evoManager.WritePopulation("prev-population.csv"); evoManager.ChildPopulation = GenerateOffspring(); evoManager.Population = evoManager.ChildPopulation; evoManager.InitializePopulationQueue(); } else if (evoManager.EvaluateOffspring()) { evoManager.ReadPopulation("population.csv"); evoManager.WritePopulation("prev-population.csv"); evoManager.ChildPopulation = GenerateOffspring(); evoManager.Population = evoManager.ChildPopulation; evoManager.InitializePopulationQueue(); } else { evoManager.ReadPopulation("population.csv"); evoManager.ReadPopulationQueue(); } PlayGame(); }