黑马程序员 JAVA <十> 红绿灯系统逻辑

本文介绍了如何使用JAVA实现十字路口的交通灯管理系统逻辑,包括异步生成车辆、信号灯控制、车辆通行模拟等。系统考虑了不同方向车辆的行驶规则,如直行、左右转车辆的控制,并通过定时器模拟车辆通过路口的时间。同时,文章给出了三个关键类:Road、Lamp和LampController的设计与实现,以及如何用枚举表示灯的状态和方向。
摘要由CSDN通过智能技术生成

 

              ------- 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个

灯中,有四个灯可以依托于它的反向灯的运作来进行相同的运作。【即它的反向灯绿,那么它绿,它的

反向灯红,那么它红】

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值