Exemple #1
0
    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);
    }
Exemple #2
0
    public void SetUpLobes()
    {
        var PerceptionLobe           = Lobes[0];
        int OffsetIntoPerceptionLobe = 0;

        foreach (var Lobe in Lobes)
        {
            if (Lobe.CopyToPerceptionLobe)
            {
                Lobe.SetUpPerceptionLobeLink(OffsetIntoPerceptionLobe, PerceptionLobe);
                OffsetIntoPerceptionLobe += Lobe.NumNeurons;
            }
            Lobe.SetUpDendrites(this);
        }
        RenderableLobes = new List <Lobe>(Lobes);
    }
Exemple #3
0
    public IEnumerator GetValue()
    {
        var          DynamicsGene = new DendriteDynamicsGene(1, 0, 0, null, 0, null, 0, null, null, 0);
        DendriteGene DendriteGene = new DendriteGene(0, 0, DendriteGene.SpreadType.Flat, 0, new Vector2Int(0, 0), new Vector2Int(5, 5), new Vector2Int(1, 1), DynamicsGene);
        TestDendrite Dendrite     = new TestDendrite(0, 0, DendriteGene);
        NeuronGene   NeuronGene   = new NeuronGene(0, 0, 0, null);
        Lobe         lobe         = new Lobe(0, null, new Vector2Int(0, 0), new Vector2Int(5, 5), Enumerable.Range(0, 25).Select(n => new Neuron(n, NeuronGene)).ToList(), false, false);

        lobe.FireNeuron(0);
        Dendrite.SetSourceLobe(lobe);
        Dendrite.MockSTW(1);
        var DendriteValue = Dendrite.GetValue();

        Assert.AreEqual(1, DendriteValue);

        Dendrite.MockSTW(255);
        DendriteValue = Dendrite.GetValue();
        Assert.AreEqual(255, DendriteValue);

        yield return(null);
    }
Exemple #4
0
 public void SetUpPerceptionLobeLink(int offsetIntoPerceptionLobe, Lobe perceptionLobe)
 {
     OffsetIntoPerceptionLobe = offsetIntoPerceptionLobe;
     PerceptionLobe           = perceptionLobe;
 }
Exemple #5
0
 public void AddLobe(Lobe lobe)
 {
     Lobes.Add(lobe);
 }
Exemple #6
0
 public void SetSourceLobe(Lobe lobe)
 {
     SourceLobe = lobe;
 }