Consider extracting movement calculations into its own class.
If so, each piece inheriting from Piece could have a move set.
The movement calculator could have methods to calculate moves in a given direction, or moves given a specific transformation.