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)) )); }
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)) )); }
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)) )); }