public override bool IsLegalMove(Square[][] board, Move move, IEnumerable<Move> pastMoves = null)
{
ValidateNotAttackingSameTeam(board, move);
if (move.RowChange != 0 && move.ColumnChange != 0)
throw new Exception("You only move horizontal or vertical with a rook.");
if (HasCollision(board, move))
throw new Exception("There is a piece between you and your destination.");
return true;
}