Beispiel #1
0
 public SimpleQSearch(IEvaluator evaluator, IMoveGenerator moveGenerator, CompositeMoveOrderer quiescenceMoveOrderer, CompositeMoveOrderer checkEvasionsMoveOrderer)
 {
     _evaluator                = evaluator;
     _moveGenerator            = moveGenerator;
     _quiescenceMoveOrderer    = quiescenceMoveOrderer;
     _checkEvasionsMoveOrderer = checkEvasionsMoveOrderer;
 }
Beispiel #2
0
 public IidAlphaBetaSearch(IMoveGenerator moveGenerator, IEvaluator evaluator, IQSearch qSearch, CompositeMoveOrderer moveOrderer)
 {
     _moveGenerator = moveGenerator;
     _evaluator     = evaluator;
     _qSearch       = qSearch;
     _moveOrderer   = moveOrderer;
 }
Beispiel #3
0
        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 => { });
        }
Beispiel #4
0
        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();
        }