Esempio n. 1
0
        public static List <BoardPosition> GetAvaiableMoves(BoardPosition bp, ChessBoard aBoard)
        {
            if (!aBoard.GetBoard()[bp.X, bp.Y].HasPiece())
            {
                return(null);
            }
            Piece p = aBoard.GetBoard()[bp.X, bp.Y].GetPiece();

            switch (p.GetPieceType())
            {
            case (Piece.PieceType.PAWN): return(GetPawnMoves(bp, aBoard));

            case (Piece.PieceType.ROOK): return(GetRookMoves(bp, aBoard));

            case (Piece.PieceType.KNIGHT): return(GetKnightMoves(bp, aBoard));

            case (Piece.PieceType.BISHOP): return(GetBishopMoves(bp, aBoard));

            case (Piece.PieceType.QUEEN): return(GetQueenMoves(bp, aBoard));

            case (Piece.PieceType.KING): return(GetKingMoves(bp, aBoard));

            default: return(null);
            }
        }