示例#1
0
 public TileTree()
 {
     Nodes = new List<TileTree>();
     Head = null;
     Value = null;
 }
示例#2
0
 public void Clear()
 {
     foreach (TileTree tt in Nodes)
     {
         tt.Clear();
     }
     Head = null;
     Value = null;
 }
示例#3
0
 private static void RecursiveBuildTileTree(Dictionary<Tile, Tile> nextParent, TileTree tree)
 {
     if (nextParent.Count == 0)
         return;
     Queue<Tile> Remove = new Queue<Tile>();
     foreach (Tile t in nextParent.Keys)
     {
         if (nextParent[t] == tree.Value)
         {
             TileTree tt = new TileTree();
             tt.Value = t;
             tt.Head = tree;
             tree.Nodes.Add(tt);
             Remove.Enqueue(t);
         }
     }
     while (Remove.Count > 0)
         nextParent.Remove(Remove.Dequeue());
     foreach (TileTree tt in tree.Nodes)
     {
         RecursiveBuildTileTree(nextParent, tt);
     }
 }