Example #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);
        }
Example #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);
        }
 public void GetKnightMoves() => MoveGenerator.AddKnightMoves(_position, new List <Move>());