public SimpleQSearch(IEvaluator evaluator, IMoveGenerator moveGenerator, CompositeMoveOrderer quiescenceMoveOrderer, CompositeMoveOrderer checkEvasionsMoveOrderer) { _evaluator = evaluator; _moveGenerator = moveGenerator; _quiescenceMoveOrderer = quiescenceMoveOrderer; _checkEvasionsMoveOrderer = checkEvasionsMoveOrderer; }
public IidAlphaBetaSearch(IMoveGenerator moveGenerator, IEvaluator evaluator, IQSearch qSearch, CompositeMoveOrderer moveOrderer) { _moveGenerator = moveGenerator; _evaluator = evaluator; _qSearch = qSearch; _moveOrderer = moveOrderer; }
private static void Bench() { var moveGen = new MoveGenerator(); var evaluator = new Evaluator(); var promotionMvvLvaMoveOrderer = new CompositeMoveOrderer(new IMoveOrderer[] { new PromotionsOrderer(), new MvvLvaOrderer() }); var qSearch = new SimpleQSearch(evaluator, moveGen, promotionMvvLvaMoveOrderer, CompositeMoveOrderer.NullMoveOrderer); var search = new SimpleAlphaBetaSearch(moveGen, evaluator, qSearch); var timeStrategy = new TimePerMoveStrategy(TimeSpan.FromSeconds(10)); search.Search(BoardParsing.PositionFromFen(MidgameFen), timeStrategy, s => { }); }
private static void Uci() { var moveGen = new MoveGenerator(); var evaluator = new Evaluator(); var promotionMvvLvaMoveOrderer = new CompositeMoveOrderer(new IMoveOrderer[] { new PromotionsOrderer(), new MvvLvaOrderer() }); var qSearch = new SimpleQSearch(evaluator, moveGen, promotionMvvLvaMoveOrderer, CompositeMoveOrderer.NullMoveOrderer); //var search = new SimpleAlphaBetaSearch(moveGen, evaluator, qSearch); var search = new IidAlphaBetaSearch(moveGen, evaluator, qSearch, promotionMvvLvaMoveOrderer); var uci = new SimpleUci(moveGen, search, Console.In, TextWriter.Synchronized(Console.Out)); uci.Loop(); }