internal ZNGameDatabaseNode(ZNGameDatabase db, ZNGameDatabaseNode parent, ZNGame value)
 {
     databaseInternal = db;
     parentInternal   = parent;
     childrenInternal = new List <ZNGameDatabaseNode>();
     valueInternal    = value;
 }
 public int CompareTo(object obj)
 {
     if (obj == null)
     {
         return(1);
     }
     if (obj is ZNGame)
     {
         ZNGame  other         = (ZNGame)obj;
         short[] otherMoves    = other.movesInternal;
         int     smallerLenght = movesInternal.Length;
         if (smallerLenght > otherMoves.Length)
         {
             smallerLenght = otherMoves.Length;
         }
         for (int i = 0; i < smallerLenght; i++)
         {
             if (movesInternal[i] > otherMoves[i])
             {
                 return(1);
             }
             if (movesInternal[i] < otherMoves[i])
             {
                 return(-1);
             }
         }
         if (movesInternal.Length > smallerLenght)
         {
             return(1);
         }
         if (otherMoves.Length > smallerLenght)
         {
             return(-1);
         }
         return(0);
     }
     throw new ArgumentException("Argument has to be a ZNGame!");
 }
 internal void Remove(ZNGame g)
 {
     root.Remove();
 }
 internal void Add(ZNGame game)
 {
     root.Add();
 }
 internal void Remove(ZNGame g)
 {
     root.Remove();
 }
 internal void Add(ZNGame game)
 {
     root.Add();
 }