コード例 #1
0
        public void GeneratesCorrectKnightMovesComplexPosition()
        {
            // Assemble
            var position = Position.FromFENString("8/ppp1p3/b2p1p1p/1N3bp1/8/4N3/PPPPPPPP/8 w - - 1 8 ");
            var moves    = new List <Move>();

            // Act
            MoveGenerator.AddKnightMoves(position, moves);

            // Assert
            var expectedMoves = new List <Move>
            {
                new Move(Square.e3, Square.d1, MoveFlags.QuietMove),
                new Move(Square.e3, Square.f1, MoveFlags.QuietMove),
                new Move(Square.e3, Square.c4, MoveFlags.QuietMove),
                new Move(Square.e3, Square.d5, MoveFlags.QuietMove),
                new Move(Square.e3, Square.g4, MoveFlags.QuietMove),
                new Move(Square.e3, Square.f5, MoveFlags.Capture, Piece.Bishop),

                new Move(Square.b5, Square.a3, MoveFlags.QuietMove),
                new Move(Square.b5, Square.c3, MoveFlags.QuietMove),
                new Move(Square.b5, Square.d4, MoveFlags.QuietMove),
                new Move(Square.b5, Square.d6, MoveFlags.Capture, Piece.Pawn),
                new Move(Square.b5, Square.a7, MoveFlags.Capture, Piece.Pawn),
                new Move(Square.b5, Square.c7, MoveFlags.Capture, Piece.Pawn),
            };

            moves.Should().BeEquivalentTo(expectedMoves);
        }
コード例 #2
0
        public void GeneratesCorrectKnightMovesStartingPosition()
        {
            // Assemble
            var position = new Position(Board.StartingPosition, Side.White, null, CastlingRights.All, 0);
            var moves    = new List <Move>();

            // Act
            MoveGenerator.AddKnightMoves(position, moves);

            // Assert
            var expectedMoves = new List <Move>
            {
                new Move(Square.b1, Square.a3, MoveFlags.QuietMove),
                new Move(Square.b1, Square.c3, MoveFlags.QuietMove),
                new Move(Square.g1, Square.f3, MoveFlags.QuietMove),
                new Move(Square.g1, Square.h3, MoveFlags.QuietMove)
            };

            moves.Should().BeEquivalentTo(expectedMoves);
        }
コード例 #3
0
 public void GetKnightMoves() => MoveGenerator.AddKnightMoves(_position, new List <Move>());