首先,交通灯管理的需求如下:
1、能够异步随机生成按照各个路线行驶的车辆
2、信号灯忽略黄灯,只考虑红灯和绿灯
3、应考虑左转车辆控制信号灯,右转车辆不受控制
4、具体信号灯控制逻辑与现实生活中普通交通灯的控制逻辑相同,不考虑特殊情况下的控制逻辑
注:南北向车辆与东西向车辆交替放行,同方向等待车辆应先放行直行车辆,而后放行左转车辆
5、每辆车通过路口的时间为1秒
6、不要求实现GUI,只考虑系统逻辑实现
通过对需求的分析,可以抽象出以下的概念:
1、东西南北一共是4个方向,其中每个方向驶来的车又分别有左转、右转、直行3种前进方向
2、对于正对的两个方向来说(东正对西,南正对北),可以使用同一盏交通灯来控制
3、对于每个方向来说,需要使用交通灯控制的都只有两个行进方向:左转和直行
综上所述,我们可以得到以下结论
1、在随机生成车辆时,车辆一共有12条行进路线
它们分别是:S2W(South to West,下同)、S2M、S2E、W2S、W2N、W2E、N2S、N2W、N2E、E2S、E2W、E2N
2、在交通灯控制模型中,就需要实现4盏交通灯的控制逻辑就足够了
它们分别控制的路线是:S2N,S2W,E2W,E2S
其中,这四盏交通灯亮起的顺序应当为&