public bool Intersects(IShip ship) { if (ShipUtils.AreBothAxisHorizontal(ship.Axis, Axis)) { return(IntersectsHorizontally(ship)); } if (ShipUtils.AreBothAxisVertical(ship.Axis, Axis)) { return(IntersectsVertically(ship)); } return(ship.Body.Any(cell => GetIndex(cell.Location) == 0)); }