diff --git a/flatland/envs/rail_generators.py b/flatland/envs/rail_generators.py index 7d79c564616d2a96ce904a59ae7653bd9e9ac0ec..3983bb0dde9983ac8f3414373d160bc3faa31786 100644 --- a/flatland/envs/rail_generators.py +++ b/flatland/envs/rail_generators.py @@ -571,6 +571,17 @@ def sparse_rail_generator(max_num_cities: int = 5, grid_mode: bool = False, max_ # reduce num_cities if less were generated in random mode num_cities = len(city_positions) + + # Try with evenly distributed cities + if num_cities < 2: + city_positions, city_cells = _generate_evenly_distr_city_positions(max_num_cities, city_radius, width, + height) + num_cities = len(city_positions) + + # Fail + if num_cities < 2: + warnings.warn("Initial parameters cannot generate valid railway") + return # Set up connection points for all cities inner_connection_points, outer_connection_points, connection_info, city_orientations = _generate_city_connection_points( city_positions, city_radius, rails_between_cities,