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); }
public EnsureMoveIsValid(IMoveFindingStartegy realStrategy) { _realStrategy = realStrategy; }
public static IMoveFindingStartegy EnsureMoveIsValid(this IMoveFindingStartegy moveFindingStartegy) { return(new EnsureMoveIsValid(moveFindingStartegy)); }