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