예제 #1
0
        public void CreatesCorrectKnightAttacksForGivenSquare(Square square, ulong expectedAttacks)
        {
            // Act
            Bitboard attacks = KnightMoves.KnightAttacks(square);

            // Assert
            Assert.Equal <Bitboard>(expectedAttacks, attacks);
        }
예제 #2
0
        public void CanGetAllKnightMoves(ulong knights, ulong expectedAttacks)
        {
            // Act
            var attacks = KnightMoves.AllKnightAttacks(knights);

            // Assert
            Assert.Equal <Bitboard>(expectedAttacks, attacks);
        }
예제 #3
0
        private static Moves Create(PieceEnum piece)
        {
            switch (piece)
            {
            case PieceEnum.Knight:
                return(KnightMoves.Get());

            case PieceEnum.Bishop:
                return(BishopMoves.Get());

            case PieceEnum.Rook:
                return(RookMoves.Get());

            case PieceEnum.Queen:
                return(QueenMoves.Get());

            case PieceEnum.King:
                return(KingMoves.Get());

            case PieceEnum.Pawn:
                return(PawnMoves.Get());
            }
            return(null);
        }
예제 #4
0
        public override List <Position> getAvailableMoves()
        {
            AbstractMove am = new KnightMoves(this);

            return(am.getAllMoves());
        }