예제 #1
0
        public void JumpTest()
        {
            var genome = new GenomeWrapper("053456789", 1000, 2);

            genome.Jump();             //jumps to index 05

            var g1 = genome.GetGene(); //reads index 05 & 06

            genome.JumpBack();         //jumps back to index 2.

            var g2 = genome.GetGene();

            Assert.AreEqual("67", g1);
            Assert.AreEqual("34", g2);
        }
예제 #2
0
        //[Tooltip("These components will be configured in order by this behaviour when Configure is called on it.")]
        //public List<IGeneticConfigurable> ComponentsToConfigure = new List<IGeneticConfigurable>();

        protected override GenomeWrapper SubConfigure(GenomeWrapper genomeWrapper)
        {
            var componentsToConfigure = GetComponentsInChildren <IGeneticConfigurable>().ToList();

            componentsToConfigure.AddRange(ExtraConfigurables.Where(c => c != null).Select(c => c as IGeneticConfigurable));

            componentsToConfigure = componentsToConfigure.Distinct().Where(c => c != null && c.GetType() != GetType()).ToList();

            foreach (var c in componentsToConfigure)
            {
                genomeWrapper.Jump();
                genomeWrapper = c.Configure(genomeWrapper);
                genomeWrapper.JumpBack();
            }

            return(genomeWrapper);
        }