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); }
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; }