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