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