コード例 #1
0
        public override bool Equals(object obj)
        {
            NEATInnovation inno = (NEATInnovation)obj;

            if (InnovationType != inno?.InnovationType)
            {
                return(false);
            }
            if (InNodeId != inno.InNodeId)
            {
                return(false);
            }
            if (OutNodeId != inno.OutNodeId)
            {
                return(false);
            }
            if (OldInnovationNum != inno.OldInnovationNum)
            {
                return(false);
            }
            return(RecurFlag == inno.RecurFlag);
        }
コード例 #2
0
        public virtual object Clone()
        {
            NEATInnovation myobj = null;

            try
            {
                myobj = (NEATInnovation)MemberwiseClone();
                myobj.InnovationType   = InnovationType;
                myobj.InNodeId         = InNodeId;
                myobj.OutNodeId        = OutNodeId;
                myobj.InnovationNum1   = InnovationNum1;
                myobj.InnovationNum2   = InnovationNum2;
                myobj.NewWeight        = NewWeight;
                myobj.NewNodeId        = NewNodeId;
                myobj.OldInnovationNum = OldInnovationNum;
                myobj.RecurFlag        = RecurFlag;
            }
            catch (CloneNotSupportedException e) // never happens
            {
                throw new InvalidOperationException();
            }
            return(myobj);
        }
コード例 #3
0
 public NEATInnovation GetInnovation(NEATInnovation inno)
 {
     return(Innovations[inno]);
 }
コード例 #4
0
 public void AddInnovation(NEATInnovation inno)
 {
     Innovations[inno] = inno;
 }
コード例 #5
0
 public bool HasInnovation(NEATInnovation inno)
 {
     return(Innovations.ContainsKey(inno));
 }