I have a 2D array containing all the Piece objects, each an instance of Rook, Bishop, King etc…
How can I find out if the path from srcX,srcY to dstX,dstY is obstructed by another piece?
The only things I can think of would involve massive amounts of tedious code =/
Your comment about "massive amounts of tedious code" is a huge exaggeration. No path on a chessboard is more than eight squares, and all of them can be followed by a simple algorithm – incrementing or decrementing the row and/or column counter. (Except for the knight, which can only move to eight squares and can’t be blocked.) I doubt that the code for any piece takes longer than twenty lines.
For example here is the code for a bishop: