private Cannon createRandomChild(Cannon[] parents)
 {
     int maxAngleParent = rand.Next(2);
     int maxForceParent = rand.Next(2);
     int minAngleParent = rand.Next(2);
     int minForceParent = rand.Next(2);
     Cannon child = new Cannon(parents[maxForceParent].maximumForce, parents[minForceParent].minimumForce, parents[maxAngleParent].maximumAngle, parents[minAngleParent].minimumAngle, this.wallHeight);
     return child;
 }
        public Family(List<Cannon> previousGen, double wallHeight)
            : this(wallHeight)
        {
            for (int i = 0; i < previousGen.Count(); i+=2)
            {
                Cannon[] parents = new Cannon[] { previousGen[i], previousGen[i + 1] };

                Cannon child1 = this.createRandomChild(parents);
                Cannon child2 = this.createRandomChild(parents);
                this.cannons.Add(child1);
                this.cannons.Add(child2);
            }
        }