Ejemplo n.º 1
0
        private static void TestMove()
        {
            var board = MakeBoard("rnbqkbnr/pppppppp/8/8/8/3P4/PPP1PPPP/RNBQKBNR b KQkq -");

            //board.DoMove2(new Move(ChessPosition.D2, ChessPosition.D3, ChessPiece.WhitePawn));
            //board.UndoMove();
            Console.WriteLine(board.Print());
            var slidingMoveGenerator = new MagicBitboardsService();
            //var evaluationService = new EvaluationService();
            //Console.WriteLine(evaluationService.Evaluate(board));

            var attacksService = new AttacksService(slidingMoveGenerator);
            var pinDetector    = new PinDetector(slidingMoveGenerator);
            var validator      = new MoveValidator(attacksService, slidingMoveGenerator, pinDetector);
            var movesService   = new MoveGenerator(attacksService, slidingMoveGenerator, pinDetector, validator);
            var forWhite       = true;
            var moves          = new Move[218];
            var moveCount      = 0;

            movesService.GetAllLegalMoves(board, moves, ref moveCount);
            //var dests = moves.Select(x => x.To);
            //var toMoveBoard = fact.PositionsToBitBoard(dests);
            //var attacked = attacksService.GetAllAttacked(board);

            //var newMove = new Move(4,2,ChessPiece.WhiteKing);
            //board.DoMove2(newMove);

            //Debugging.ShowBitBoard(board.BitBoard[ChessPiece.WhiteKing], board.BitBoard[ChessPiece.WhiteRook]);
        }
 public EvaluationService2(EvaluationData evaluationData)
 {
     _pawnControl      = new ulong[2];
     _evaluationScores = new EvaluationScores();
     _evaluationData   = evaluationData;
     _evalTable        = new EvalHashTable();
     _evalTable.SetSize(16 * 1024 * 1024);
     _pawnTable = new EvalHashTable();
     _pawnTable.SetSize(16 * 1024 * 1024);
     _slideGenerator = new MagicBitboardsService();
     _pinDetector    = new PinDetector(_slideGenerator);
     _attacks        = new AttacksService(_slideGenerator);
 }
Ejemplo n.º 3
0
        public Game()
        {
            var slidingMoveGenerator = new MagicBitboardsService();
            var evaluationService    = new EvaluationService2(new EvaluationData());
            //var evaluationService = new NnueEvaluationService(new NnueExternalClient());
            var attacksService = new AttacksService(slidingMoveGenerator);
            var pinDetector    = new PinDetector(slidingMoveGenerator);
            var validator      = new MoveValidator(attacksService, slidingMoveGenerator, pinDetector);
            var movesService   = new MoveGenerator(attacksService, slidingMoveGenerator, pinDetector, validator);
            var searchService  = new SearchService2(movesService, evaluationService);

            BoardFact  = new BoardFactory();
            Hyperbola  = slidingMoveGenerator;
            Evaluation = evaluationService;
            Attacks    = attacksService;
            Moves      = movesService;
            Search     = searchService;
        }