예제 #1
0
        public void GetDirectAttackMoves_WhitePawnsD4G4G2EnemyF5TargetE6()
        {
            // arrange
            var s = new Side("G1",
                new PieceSet<Queen>(),
                new PieceSet<Bishop>(),
                new PieceSet<Knight>(),
                new PieceSet<Rook>(),
                new WhitePawns(Bitboard.With.D4.G4)
                );

            var enemy = new Square("F5").AsBoard;

            // act
            var result = s.GetDirectAttackMoves("E6", enemy);

            // assert
            result.Should().Have.SameSequenceAs(
                new Move("G4", "F5"),
                new Move("D4", "D5")
                );
        }
예제 #2
0
        public void GetDirectAttackMoves_BlackPawnsD4G4H6TargetE2()
        {
            // arrange
            var s = new Side("G8",
                new PieceSet<Queen>(),
                new PieceSet<Bishop>(),
                new PieceSet<Knight>(),
                new PieceSet<Rook>(),
                new BlackPawns(Bitboard.With.D4.G4.H6)
                );

            var enemy = new Square("F3").AsBoard;

            // act
            var result = s.GetDirectAttackMoves("E2", enemy);

            // assert
            result.Should().Have.SameSequenceAs(
                new Move("G4", "F3"),
                new Move("D4", "D3")
                );
        }