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(); } } }