protected override IMoveFindingStartegy GetSearchEngine(IFieldsGraph graph) { options.AlphaBeta.JumpsMaxDepth = 10; options.AlphaBeta.StoneRadius = 1; options.AlphaBeta.SkipShortMoves = 1; options.AlphaBeta.SearchDepth = 3; options.AlphaBeta.BlackStonesToBorderWeight = 0; options.AlphaBeta.DistanceToBorderWeight = 1; RawMoveFinders = new RawMoveFinders(new MovesFactory(), PlayersState.FirstIsOnTheMove(), options); return(RawMoveFinders.AlphaBeta()); }
protected override void EstablishContext() { _fieldsGraph = GraphBuilder().Build(); _playersState = PlayersState.SecondIsOnTheMove(); _performMoves = new PerformMoves(_fieldsGraph, new NulloPlayersSwapper()); var testPhutballOptions = new PhutballOptions { RowCount = _fieldsGraph.RowCount, ColumnCount = _fieldsGraph.ColumnCount }; _moveFinders = new RawMoveFinders(new MovesFactory(), _playersState, testPhutballOptions); ProvideImplementationOf <IPhutballOptions>(testPhutballOptions); }
protected IFieldsGraph AfterMoveOn(TestFieldsGraph graphToSearch) { var actualGraph = graphToSearch.Build(); _playersState = PlayersState.SecondIsOnTheMove(); var phutballOptions = new PhutballOptions() { RowCount = actualGraph.RowCount, ColumnCount = actualGraph.ColumnCount }; RawMoveFinders = new RawMoveFinders(new MovesFactory(), _playersState, phutballOptions); _performMoves = new PerformMoves(actualGraph, new NulloPlayersSwapper()); _strategy = GetSearchStrategy(); _bestMove = _strategy.Search(actualGraph); if (_bestMove.Move != null) { _performMoves.Perform(_bestMove.Move); } return(actualGraph); }
protected override IMoveFindingStartegy GetSearchStrategy() { return(RawMoveFinders.BfsUnbounded()); }
protected override IMoveFindingStartegy GetSearchStrategy() { return(RawMoveFinders.OrderByNodesValues()); }
protected override IMoveFindingStartegy GetSearchStrategy() { return(RawMoveFinders.DfsCuttoff()); }
protected override IMoveFindingStartegy GetSearchEngine(IFieldsGraph graph) { RawMoveFinders = new RawMoveFinders(new MovesFactory(), PlayersState.SecondIsOnTheMove(), options); return(RawMoveFinders.OrderByNodesValuesWithCuttofsToWhite()); }
protected override IMoveFindingStartegy GetSearchEngine(IFieldsGraph graph) { RawMoveFinders = new RawMoveFinders(new MovesFactory(), PlayersState.SecondIsOnTheMove(), options); return(RawMoveFinders.BfsNodesBounded()); }
public MoveFinders(RawMoveFinders rawMoveFinders) { _rawMoveFinders = rawMoveFinders; }
public MoveFinders(RawMoveFinders rawMoveFinders) { _rawMoveFinders = rawMoveFinders; }