------- android培训、java培训、期待与您交流! ----------
交通灯管理系统
模拟实现十字路口的交通灯管理系统逻辑,具体需求如下:
1、异步随机生成按照各个路线行驶的车辆。
例如:
由南向而来去往北向的车辆 ---- 直行车辆
由西向而来去往南向的车辆 ---- 右转车辆
由东向而来去往南向的车辆 ---- 左转车辆
……
【思考:车子由什么产生?产生的车子存储在什么里面?怎么产生车?】
2、信号灯忽略黄灯,只考虑红灯和绿灯。
3、应考虑左转车辆控制信号灯,右转车辆不受信号灯控制。
【思路:考虑右转的灯都为长绿灯,表示车随时可以右转】
4、具体信号灯控制逻辑与现实生活中普通交通灯控制逻辑相同,不考虑特殊情况下的控制逻辑。
注:南北向车辆与东西向车辆交替放行,同方向等待车辆应先放行直行车辆而后放行左转车辆。
5、每辆车通过路口时间为1秒(提示:可通过线程Sleep的方式模拟)。
【思考:车开过路口这个操作怎么实现?在哪里实现?】
6、随机生成车辆时间间隔以及红绿灯交换时间间隔自定,可以设置。
7、不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。
思路:
一、先看车行路线图例:
二、逻辑中的12个方向的灯:
S2N(南到北),S2W(南到西),E2W(东到西),E2S(东到南) //主要的需要操作的四个灯,它控制通往四个方
向的车
N2S(北到南),N2E(北到东),W2E(西到东),W2N(西到北) //前面四个灯对应的反向灯,让它们依托于前面
四个灯来运作。
S2E(南到东),N2W(北到西),E2N(东到北),W2S(西到南)//四个右转灯,它们长亮
三、排除4个长亮灯,我们需要处理的灯有8个灯,不过,每一个灯都有反向的灯。比如S2N(南到北)和
N2S(北到南)。这样的话,就表示,S2N绿灯的话,那么N2S也是绿灯。这样的话,也就是说,剩下的8个
灯中,有四个灯可以依托于它的反向灯的运作来进行相同的运作。【即它的反向灯绿,那么它绿,它的
反向灯红,那么它红】