예제 #1
0
 public static bool TryMove(this MCTS <GameNode> root, int iterations, out MCTS <GameNode> newRoot, bool preferAutoMove = true)
 {
     if (preferAutoMove && root.TryAutoMove(out newRoot))
     {
         return(true);
     }
     else
     {
         root.Execute(iterations);
         if (root.GetBestMove() < 0)
         {
             newRoot = root;
             return(false);
         }
         else
         {
             newRoot = root.GetChildByMove(root.GetBestMove());
             return(true);
         }
     }
 }