Пример #1
0
        public IMoveFindingStartegy AlphaBeta()
        {
            var playersStateCopy = _playersStateCopy();
            var alphaBetaOptions = _phutballOptions.AlphaBeta;

            return(new AlphaBetaMoveFindingStrategy(
                       playersStateCopy, alphaBetaOptions,
                       (graph) => new AlternatingJumpsMovesTree(JumpNode.Empty(graph),
                                                                (parent) =>
                                                                new FirstJumpThenPlaceStones(parent, alphaBetaOptions,
                                                                                             playersStateCopy))
                       ));
        }
Пример #2
0
        public IMoveFindingStartegy SmartAlphaBetaJumpOrStay()
        {
            var playersStateCopy = _playersStateCopy();
            var alphaBetaOptions = _phutballOptions.AlphaBeta.AllowNoMoveToBeTaken().HalfDepth();

            return(new AlphaBetaMoveFindingStrategy(
                       playersStateCopy, alphaBetaOptions,
                       (graph) => new AlternatingJumpsMovesTree(JumpNode.Empty(graph),
                                                                (parent) =>
                                                                new JumpCollectWhiteStonePlacesThenPutBlack(parent, alphaBetaOptions,
                                                                                                            playersStateCopy))
                       ));
        }
Пример #3
0
        public IMoveFindingStartegy AlphaBetaJumpsOrStay()
        {
            var playersStateCopy = _playersStateCopy();
            var options          = _phutballOptions.AlphaBeta.AllowNoMoveToBeTaken();

            return(new AlphaBetaMoveFindingStrategy(playersStateCopy, options,
                                                    (graph) => new AlternatingJumpsMovesTree(JumpNode.Empty(graph),
                                                                                             (parent) => new AllAlternatigJumpsTreeCollection(parent, options))
                                                    ));
        }