Exemple #1
0
    private void OnShipFinished(float score, int index)
    {
        finishedShips++;
        finishedBatchShips++;
        scores[index] = score;

        if (finishedBatchShips >= shipsPerBatch)
        {
            EndBatch();
            currentBatch++;
            if (currentBatch >= batches)
            {
                currentGeneration++;
                chart.AddGenerationData(currentGeneration, GetMaxScore(), GetAvgScore());
                if (currentGeneration < generations)
                {
                    NewGeneration();
                }
                else
                {
                    DelimitedWriter.Write(Application.dataPath + "/trained.csv", Evolution.GetFittestChromosome(chromosomes, scores).ToColumnMatrix(), ",", null, null, System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
                    SceneManager.LoadScene("Playing");
                }
            }
            else
            {
                StartBatch();
            }
        }
    }