public void GenerateInitial()
        {
            _evolver = new GeneticOptimisation(tankCount, 0.15, SelectionMethod.Natural);

            for (int i = 0; i < tankCount; i++)
            {
                var rp = Random.insideUnitSphere;
                rp.y = 0;
                rp   = generatePoint.position + rp.normalized * Random.Range(1, generateRadius);
                _initPosition.Add(rp);

                _drivers.Add(Instantiate(tankPrefab, rp, Quaternion.identity).GetComponent <TankDriver>());
                _evolver.population.Add(_drivers[i].network);
            }

            _evolver.RandomizePopulation(-1d, 1d);
        }
        public void GenerateInitial()
        {
            PreLoader       pl = FindObjectOfType <PreLoader> ();
            SelectionMethod mySlm;

            totalStepsPerEpoch = pl.timer;
            float mutate = pl.MR;
            int   SlmNum = pl.dropD;

            tankCount = pl.PS;

            if (SlmNum == 0)
            {
                mySlm = SelectionMethod.Natural;
            }
            else if (SlmNum == 1)
            {
                mySlm = SelectionMethod.Competitive;
            }
            else
            {
                mySlm = SelectionMethod.Random_ForFun;
            }

//			Debug.Log (pl.PS);

            m_evolver = new GeneticOptimisation(tankCount, mutate, mySlm);

            for (var i = 0; i < tankCount; i++)
            {
                var rp = Random.insideUnitSphere;
                rp.y = 0;
                rp   = generatePoint.position + rp.normalized * Random.Range(1, generateRadius);
                m_initPosition.Add(rp);

                m_drivers.Add(Instantiate(tankPrefab, rp, Quaternion.identity).GetComponent <TankDriver>());
                m_drivers[i].GetComponent <Tank>().Setup();
                m_evolver.population.Add(m_drivers[i].network);
            }

            m_evolver.RandomizePopulation();
        }