예제 #1
0
        private int CountActualValue(JumpNode node)
        {
            var lastMove = node.LastMove;

            _acutalMoves.Push(lastMove);
            _performMoves.Perform(lastMove);
            return(_valueOfGraph.GetValue(node.ActualGraph));
        }
예제 #2
0
        public void Put(ITree <JumpNode> item)
        {
            var jumpNode = item.Node;

            _performMoves.Perform(jumpNode.LastMove);
            var value = _valueOfGraph.GetValue(jumpNode.ActualGraph);

            _inner.Add(value, item);
            _performMoves.Undo(jumpNode.LastMove);
        }
예제 #3
0
 public void ChooseAndPerform(CancellationToken cancelComputerMove)
 {
     ChooseBestMoveAndApply(cancelComputerMove, (resultMOve) => _performMoves.Perform(resultMOve));
 }
예제 #4
0
 public void OnEnter(ITree <JumpNode> node, ITreeSearchContinuation treeSearchContinuation)
 {
     _performMoves.Perform(node.Node.LastMove);
 }