public void Backpropagation(MCTSTree nodeToExplore, PlayState playoutResult)
 {
     while (nodeToExplore.parentnode != null)
     {
         nodeToExplore.visits++;
         nodeToExplore.wins++;
         nodeToExplore = nodeToExplore.parentnode;
     }
 }
        public void ExpandNode(MCTSTree nodetoexpand)
        {
            List <PlayerTask> options = nodetoexpand.poGame.CurrentPlayer.Options();

            foreach (PlayerTask option in options)
            {
                MCTSTree newchild = new MCTSTree();
                nodetoexpand.childnodesList.Add(newchild);
                newchild.parentnode = nodetoexpand;
            }
        }
        public MCTSTree GetRootNode()
        {
            MCTSTree node = this;

            while (node.parentnode != null)
            {
                ;
            }
            node = node.parentnode;
            return(node);
        }
        public MCTSTree GetChildWithMaxScore()
        {
            MCTSTree node = new MCTSTree();

            return(node);
        }
        public MCTSTree GetPromisingNode(MCTSTree rootnode)
        {
            MCTSTree node = this;

            return(node);
        }