void CreateNextGeneration(List <NeuralNetwork> oldBrains) { gameControl.StopButton(); gameControl.StartButton(); ///==Wyrzucenie zbędnych mozgów===/// int keepCount = (int)(oldBrains.Count * keepPerc); if (keepCount == 0) { keepCount = 1; } int cutCount = oldBrains.Count - keepCount; for (int i = 0; i < cutCount; i++) { oldBrains.RemoveAt(oldBrains.Count - 1); } ///==Rozmnazanie Mózgów==/// int netIterator = 0; bool bestOne = true; foreach (AICarControl car in GameObject.FindObjectsOfType <AICarControl>()) { car.brain = new NeuralNetwork(oldBrains[netIterator]); //print("new brain - " + oldBrains[netIterator].GetFitness()); if (!bestOne) { car.brain.Mutate(true, 0.1f); } else { car.GetComponent <ColorChangerSR>().ChangeColor(Color.yellow); display.bestCar = car.gameObject; bestOne = false; } netIterator++; if (netIterator >= oldBrains.Count) { netIterator = 0; } } display.UpdateDisplay(); IterGenCounter(); }