The LineMove class should be split into HorizontalMove and VerticalMove classes, as it currently contains too much code, with low cohesion. Additionally, this simplification should allow the removal of the RookMove class, as it is currently just a simple wrapper around the LineMove class.
The LineMove class should be split into HorizontalMove and VerticalMove classes, as it currently contains too much code, with low cohesion. Additionally, this simplification should allow the removal of the RookMove class, as it is currently just a simple wrapper around the LineMove class.