// Use this for initialization
    void Start()
    {
        Bounds boundaries = environment.GetComponent <Renderer> ().bounds;

        for (int i = 0; i < pop_sze; i++)
        {
            MeeMee meemee = CreateMeemee(boundaries);
            pop.Add(meemee);
        }



        StartCoroutine(EvalulationLoop());
    }
    public MeeMee CreateMeemee(Bounds bounds)
    {
        Vector3 rndPos = new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f) * bounds.size.x, UnityEngine.Random.Range(-0.5f, 0.5f) * bounds.size.y, UnityEngine.Random.Range(-0.5f, 0.5f) * bounds.size.z);

        Vector3 WrldPos = environment.transform.position + rndPos;

        GameObject temp   = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        MeeMee     meemee = temp.AddComponent <MeeMee>();

        float height = temp.GetComponent <MeshFilter> ().mesh.bounds.size.y;

        WrldPos.y += height / 2;


        temp.transform.position = WrldPos;

        RndCol(temp);

        return(meemee);
    }
    void Breed()
    {
        List <MeeMee> tempList = new List <MeeMee>();

        for (int i = 1; i < pop.Count; i = i + 2)
        {
            int breederIndex1 = i - 1;
            int breederIndex2 = i;

            float split = UnityEngine.Random.Range(0.0f, 1.0f);



            Bounds bounds = environment.GetComponent <Renderer> ().bounds;

            MeeMee childMe1 = CreateMeemee(bounds);
            MeeMee childMe2 = CreateMeemee(bounds);

            tempList.Add(childMe1);
            tempList.Add(childMe2);

            if (split <= 0.16f)                       // 100/6


            {
                Color tempC = new Color(pop [breederIndex1].color.r,
                                        pop [breederIndex1].color.g,
                                        pop [breederIndex2].color.b);
                childMe1.Setcolor(Mut(tempC));



                tempC = new Color(pop [breederIndex1].color.r,
                                  pop [breederIndex2].color.g,
                                  pop [breederIndex1].color.b);

                childMe2.Setcolor(Mut(tempC));
            }
            else if (split <= 0.32f)
            {
                Color tempC = new Color(pop [breederIndex1].color.r,
                                        pop [breederIndex2].color.g,
                                        pop [breederIndex1].color.b);
                childMe1.Setcolor(Mut(tempC));
                tempC = new Color(pop [breederIndex2].color.r,
                                  pop [breederIndex1].color.g,
                                  pop [breederIndex2].color.b);

                childMe2.Setcolor(Mut(tempC));
            }
            else if (split <= 0.48f)
            {
                Color tempC = new Color(pop [breederIndex2].color.r,
                                        pop [breederIndex1].color.g,
                                        pop [breederIndex1].color.b);
                childMe1.Setcolor(Mut(tempC));
                tempC = new Color(pop [breederIndex2].color.r,
                                  pop [breederIndex1].color.g,
                                  pop [breederIndex1].color.b);
                childMe2.Setcolor(Mut(tempC));
            }
            else if (split <= 0.64f)
            {
                Color tempC = new Color(
                    pop [breederIndex2].color.r,
                    pop [breederIndex1].color.g,
                    pop [breederIndex1].color.b);
                childMe1.Setcolor(Mut(tempC));
                tempC = new Color(pop [breederIndex1].color.r,
                                  pop [breederIndex1].color.g,
                                  pop [breederIndex2].color.b);
                childMe2.Setcolor(Mut(tempC));
            }
            else if (split <= 0.8f)
            {
                Color tempC = new Color(pop [breederIndex2].color.r,
                                        pop [breederIndex2].color.g,
                                        pop [breederIndex1].color.b);
                childMe1.Setcolor(Mut(tempC));
                tempC = new Color(pop [breederIndex1].color.r,
                                  pop [breederIndex1].color.g,
                                  pop [breederIndex2].color.b);
                childMe2.Setcolor(Mut(tempC));
            }
            else
            {
                Color tempC = new Color(pop [breederIndex2].color.r,
                                        pop [breederIndex1].color.g,
                                        pop [breederIndex2].color.b);
                childMe1.Setcolor(Mut(tempC));
                tempC = new Color(pop [breederIndex1].color.r,
                                  pop [breederIndex2].color.g,
                                  pop [breederIndex1].color.b);

                childMe2.Setcolor(Mut(tempC));
            }
        }
        pop.AddRange(tempList);
    }