public static Lobe BuildFromGene(LobeGene gene, int numSourceNeurons0, int numSourceNeurons1) { var Neurons = Enumerable.Range(0, gene.Dimension.x * gene.Dimension.y).Select(n => new Neuron(n, gene.NeuronGene)).ToList(); Neurons = SetUpDendrites(Neurons, gene.Dendrite0, gene.Dendrite1, numSourceNeurons0, numSourceNeurons1); Type NeuronEnumType = null; switch (gene.LobeID) { case BrainLobeID.StimulusSource: NeuronEnumType = typeof(StimulusGenus); break; case BrainLobeID.Drive: NeuronEnumType = typeof(DriveGenus); break; case BrainLobeID.Verb: NeuronEnumType = typeof(VerbGenus); break; case BrainLobeID.Noun: NeuronEnumType = typeof(StimulusGenus); break; case BrainLobeID.Decision: NeuronEnumType = typeof(VerbGenus); break; case BrainLobeID.Attention: NeuronEnumType = typeof(StimulusGenus); break; } return(new Lobe(gene.LobeID, NeuronEnumType, gene.Location, gene.Dimension, Neurons, gene.CopyToPerceptionLobe, gene.WinnerTakesAll)); }
public void MakeBrain() { var OpCodes = new List <OpCode.IOpCode> { new OpCode.Type0() }; var Type0SVRule = new SVRule(OpCodes); var StateSVRule = new SVRule(new List <OpCode.IOpCode> { new OpCode.State() }); var Type0NeuronGene = new NeuronGene(0, 0, 255, Type0SVRule); var StateNeuronGene = new NeuronGene(0, 0, 255, StateSVRule); var DendriteDynamics = new DendriteDynamicsGene(0, 0, 0, StateSVRule, 0, null, 0, null, null, 0); DendriteGene DendriteGene = new DendriteGene(0, BrainLobeType.Drive, DendriteGene.SpreadType.Flat, 0, new Vector2Int(1, 1), new Vector2Int(255, 255), new Vector2Int(255, 255), DendriteDynamics); DendriteGene DendriteGeneNoDendrites = new DendriteGene(0, BrainLobeType.Perception, DendriteGene.SpreadType.Flat, 0, new Vector2Int(0, 0), new Vector2Int(1, 1), new Vector2Int(1, 1), DendriteDynamics); // Destination lobe var LobeGene1 = new LobeGene(BrainLobeID.Perception, new Vector2Int(1, 1), new Vector2Int(1, 1), DendriteGene, DendriteGene, Type0NeuronGene, 0, 0); // Source lobe var LobeGene2 = new LobeGene(BrainLobeID.Drive, new Vector2Int(1, 1), new Vector2Int(1, 1), DendriteGeneNoDendrites, DendriteGeneNoDendrites, StateNeuronGene, 0, 0); Brain = new Brain(); DestLobe = LobeBuilder.BuildFromGene(LobeGene1, 1, 1); SourceLobe = LobeBuilder.BuildFromGene(LobeGene2, 1, 1); Brain.AddLobe(DestLobe); Brain.AddLobe(SourceLobe); DestLobe.SetUpDendrites(Brain); }
public IEnumerator BuildBrain() { LobeGene Gene = new LobeGene(0, new Vector2Int(0, 0), new Vector2Int(1, 2), null, null, null, 0, 0); List <LobeGene> Genes = new List <LobeGene> { Gene }; GameObject go = new GameObject("Dummy game object"); Brain Brain = BrainBuilder.Build(go, Genes); Assert.AreEqual(1, Brain.NumLobes); yield return(null); }
public IEnumerator BuildLobe() { DummyBrain Brain = new DummyBrain(); var Location = new Vector2Int(1, 2); var Dimension = new Vector2Int(3, 4); LobeGene Gene = new LobeGene(BrainLobeID.Concept, Location, Dimension, null, null, null, 0, 0); var Lobe = LobeBuilder.BuildFromGene(Gene, 25, 25); Assert.AreEqual(BrainLobeID.Concept, Lobe.LobeID); Assert.AreEqual(Location, Lobe.Location); Assert.AreEqual(Dimension, Lobe.Dimension); Assert.AreEqual(Dimension.x * Dimension.y, Lobe.NumNeurons); yield return(null); }