// traffic_sim.cc simulate a few city blocks #include "simulation.h" #include "vehicle.h" #include "lane.h" #include "intersection.h" #include "x_plot_d.h" // or some other plot package float my_scale; int CLK_PER_SEC; int main() { int i, j; intersection * intersection_list = 0; intersection * a_intersection; route * route_1 = 0; route * route_2 = 0; my_scale = 8.0; CLK_PER_SEC = CLOCKS_PER_SEC/1; // divide by bigger number for faster cars initialize(); intersection_list = new intersection( -30.0, -9.0, intersection_list); intersection_list = new intersection( -30.0, 0.0, intersection_list); intersection_list = new intersection( -30.0, 9.0, intersection_list); intersection_list = new intersection( 0.0, -9.0, intersection_list); intersection_list = new intersection( 0.0, 0.0, intersection_list); intersection_list = new intersection( 0.0, 9.0, intersection_list); intersection_list = new intersection( 30.0, -9.0, intersection_list); intersection_list = new intersection( 30.0, 0.0, intersection_list); intersection_list = new intersection( 30.0, 9.0, intersection_list); intersection_list->draw(intersection_list); PRINT(); intersection_list->connect_from(intersection_list); a_intersection = intersection_list; while( a_intersection != 0) // create some vehicles { a_intersection->creator( 16.0, 3000.0, 9.0, 12.0, east); a_intersection->creator( 16.0, 3000.0, 12.0, 15.0, west); a_intersection = a_intersection->next(); } route_1 = new route(1,south,0); route_1->add_route(1,east); route_1->add_route(1,north); route_1->add_route(1,west); route_1->add_route(0,reset); route_2 = new route(1,north,0); route_2->add_route(1,east); route_2->add_route(1,south); route_2->add_route(1,west); route_2->add_route(0,reset); intersection_list->set_signal(intersection_list, red, green); for( i=0; i<30; i++) { intersection_list->operate(intersection_list); PRINT(); delay(1); if(i%10 == 0) intersection_list->set_signal(intersection_list, green, red); if(i%20 == 0) intersection_list->set_signal(intersection_list, red, green); } CLOSE(); return 0; } // end traffic_sim.cc main