Пример #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>());