public override List<IGEPOrganism> Execute(IGEPEnvironment environment) { var dna = new GEPDNA(); var allele = new GEPAllele(dna); var main = new GEPGene(environment: environment); main.Add(allele); var chromosome = new GEPChromosome(environment: environment, main: main); var organism = new GEPOrganism(environment: environment) { chromosome }; organism.Parent = environment; for (var i = 0; i < environment.GeneticCode.DNALength; i++) allele.DNA.AddRandomNucleotide(); /* var testAllele = new GEPAllele(new GEPDNA()); var testGene = new GEPGene(environment: environment); testGene.Add(testAllele); main.Add(testGene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) testAllele.DNA.AddRandomNucleotide(); var test2Allele = new GEPAllele(new GEPDNA()); var test2Gene = new GEPGene(environment: environment); test2Gene.Add(test2Allele); main.Add(test2Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test2Allele.DNA.AddRandomNucleotide(); var test3Allele = new GEPAllele(new GEPDNA()); var test3Gene = new GEPGene(environment: environment); test3Gene.Add(test3Allele); test2Gene.Add(test3Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test3Allele.DNA.AddRandomNucleotide(); var test4Allele = new GEPAllele(new GEPDNA()); var test4Gene = new GEPGene(environment: environment); test4Gene.Add(test4Allele); main.Add(test4Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test4Allele.DNA.AddRandomNucleotide(); var test5Allele = new GEPAllele(new GEPDNA()); var test5Gene = new GEPGene(environment: environment); test5Gene.Add(test5Allele); test3Gene.Add(test5Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test5Allele.DNA.AddRandomNucleotide(); */ return new List<IGEPOrganism>() { organism }; }
private IGEPGene CreateGeneFromGenomeUnit(IGEPEnvironment gepEnvironment, IGenomeUnit unit) { var gene = new GEPGene(environment: gepEnvironment); gene.Add(unit.ActiveAllele); foreach (var inactiveAllele in unit.InactiveAlleles) gene.Add(inactiveAllele); return gene; }