/// <summary> /// Create child dna by breeding two parents from the mating pool /// </summary> /// <param name="dna1"></param> /// <param name="dna2"></param> /// <returns></returns> private IDNAF Breed() { IDNAF child = new DNAF(); IDNAF parent1 = _matingPool[UnityEngine.Random.Range(0, _matingPool.Count)]; IDNAF parent2 = _matingPool[UnityEngine.Random.Range(0, _matingPool.Count)]; child.Crossover(parent1, parent2); return(child); }
/// <summary> /// Create a new DNA from genes /// </summary> /// <param name="genes"></param> /// <returns></returns> public static IDNAF CreateFromGenes(int[] genes) { var dna = new DNAF(); for (int i = 0; i < genes.Length; i++) { dna.SetGene(i, genes[i]); } return(dna); }