def main(): size = query_size_grid() # Query user for size of city grid num_simuls = query_number_simulations() # Query user for number of simulations to run (min_num_peds, max_num_peds) = query_number_pedestrians(size) # Query user for number of pedestrians out_pref = query_output_preference() # Query user as to whether to print view of city or output png/Gephi files print("--------------------") print("Generating a random city") city = City.generate_random_city(size, size) # Build the city network if out_pref[0]: print("\nHere is the randomly generated city grid that will be used for simulation (saved as city.png):\n") city.print(out_pref[0], out_pref[1]) # Display city network if user requests simulation_summary = {} # Container for all results summary simulation = 1 while simulation <= num_simuls: # Run simulations and record results print("Running simulation {}".format(simulation)) pedestrian_summary = {} for num_peds in range(min_num_peds, max_num_peds + 1): intersection_list = run_simulation(city, num_peds) if intersection_list: pedestrian_summary[num_peds] = { "Pedestrians": num_peds, "City": city, "Top_Location": intersection_list[0][0], "Number_Collisions": intersection_list[0][1] } else: break simulation_summary[simulation] = pedestrian_summary simulation += 1 print_aggregate_statistics(simulation_summary, size, city) simulation_reports = [] simulation_reports.extend([report for report in simulation_summary.values()])
from city import City from pedestrian import Pedestrian city = City.generate_random_city(10, 10) #city.print(True, True) pedestrians = Pedestrian.generate_random_pedestrians(50, city)