示例#1
0
        override public float Evaluate(SVDataPacket data)
        {
            float Result = 0;

            foreach (var Code in Children)
            {
                Result = Code.Evaluate(data);
            }
            return(Result);
        }
示例#2
0
 public float Evaluate(SVDataPacket data)
 {
     if (Head.GetType() == typeof(End))
     {
         return(0);
     }
     else
     {
         return(Head.Evaluate(data));
     }
 }
示例#3
0
 override public float Evaluate(SVDataPacket data)
 {
     if (Children[0].Evaluate(data) > 0)
     {
         return(Children[1].Evaluate(data));
     }
     else
     {
         return(0);
     }
 }
示例#4
0
        override public float Evaluate(SVDataPacket data)
        {
            //if (data.d0.Any(d => d.GetValue() == 0))
            //{
            //    return 0;
            //}
            //else
            //{
            var x = data.d0.Sum(d => d.GetValue());

            return(x);
            //}
        }
示例#5
0
        override public float Evaluate(SVDataPacket data)
        {
            bool d0 = false;
            bool d1 = false;

            if (data.d0 != null)
            {
                d0 = data.d0.Any(d => d.GetValue() > 0);
            }
            if (data.d1 != null)
            {
                d1 = data.d1.Any(d => d.GetValue() > 0);
            }
            return((d0 || d1) ? 1 : 0);
        }
示例#6
0
        override public float Evaluate(SVDataPacket data)
        {
            Profiler.BeginSample("move towards");
            var Op0 = Children[0].Evaluate(data);

            if (Op0 == 0)
            {
                Profiler.EndSample();
                return(0);
            }
            var Op1 = Children[1].Evaluate(data);
            var Op2 = Children[2].Evaluate(data);

            Profiler.EndSample();
            return(Op0 + (Op1 - Op0) / (Op1 / Op2));
        }
示例#7
0
    public IEnumerator FailTrue()
    {
        var SV = new SVRule(new List <IOpCode>
        {
            new Output(),
            new True(),
            new Suscept(),
            new MoveTowards(),
            new TwoFiveFive(),
            new SixtyFour()
        });
        var DataPacket = new SVDataPacket
        {
            NeuronOutput   = 0,
            Susceptibility = 1
        };
        var Result = SV.Evaluate(DataPacket);

        Assert.AreEqual(0, Mathf.RoundToInt(Result));

        yield return(null);
    }
示例#8
0
 override public float Evaluate(SVDataPacket data)
 {
     return(data.State);
 }
示例#9
0
 override public float Evaluate(SVDataPacket data)
 {
     //TODO
     return(0);
 }
示例#10
0
 override public float Evaluate(SVDataPacket data)
 {
     return(data.d1.Sum(d => d.GetValue()));
 }
示例#11
0
 override public float Evaluate(SVDataPacket data)
 {
     return(Children[0].Evaluate(data) + Children[1].Evaluate(data));
 }
示例#12
0
 override public float Evaluate(SVDataPacket data)
 {
     return(255);
 }
示例#13
0
 override public float Evaluate(SVDataPacket data)
 {
     return(data.Susceptibility);
 }
示例#14
0
 override public float Evaluate(SVDataPacket data)
 {
     return(data.Result);
 }
示例#15
0
 public abstract float Evaluate(SVDataPacket data);
示例#16
0
 override public float Evaluate(SVDataPacket data)
 {
     return(UnityEngine.Random.Range(Children[0].Evaluate(data), Children[1].Evaluate(data)));
 }
示例#17
0
 override public float Evaluate(SVDataPacket data)
 {
     return(data.NeuronOutput);
 }