Example #1
0
            /// <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);
            }
Example #2
0
            /// <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);
            }