예제 #1
0
파일: Node.cs 프로젝트: Ingovd/small-shogi
        public void ExpandTree(Game g, ref int nodeCount, ref int collisionCount, Hashtable transposition)
        {
            if(children != null)
                return;
            children = new List<Node>();
            var plies = g.children(position, c);
            foreach (var ply in plies)
            {
                var s = new Node(ply.Apply(position, g), (byte)(c ^ 1));
                s.Evaluate(g);
                nodeCount++;

                if (transposition.ContainsKey(s))
                    collisionCount++;
                else
                    transposition.Add(s, s);

                s.parents.Add(this);
                children.Add(s);
            }
        }
예제 #2
0
파일: Node.cs 프로젝트: Ingovd/small-shogi
 public void Expand(Game g, Hashtable transposition)
 {
     if(children != null)
         return;
     children = new List<Node>();
     var plies = g.children(position, c);
     foreach (var ply in plies)
     {
         var s = new Node(ply.Apply(position, g), (byte)(c ^ 1));
         if (transposition.ContainsKey(s))
             s = (Node)transposition[s];
         else
         {
             s.Evaluate(g);
             transposition[s] = s;
         }
         s.parents.Add(this);
         children.Add(s);
     }
 }