黑马程序员技术交流社区

标题: 有关交通灯管理系统的逻辑问题 [打印本页]

作者: 何俊森    时间: 2013-6-2 15:14
标题: 有关交通灯管理系统的逻辑问题
本帖最后由 何俊森 于 2013-6-2 21:07 编辑

张老师的那个交通灯系统一直不是很明白E2W("W2E", "E2S", false), E2S("W2N", "S2N", false), S2N("N2S", "S2W", false), S2W("N2E", "E2W", false),
W2E(null, null, false), W2N(null, null, false), N2S(null, null, false), N2E(null, null, false),
E2N(null, null, true), N2W(null, null, true), W2S(null, null, true), S2E(null, null, true);
为什么E2W下一个灯是W2E,W2E下一个灯是E2S...E2W,还有不考虑黄灯的话,不是只有8个灯吗?




作者: 袁梦希    时间: 2013-6-2 15:50
本帖最后由 袁梦希 于 2013-6-2 15:52 编辑

首先你这个问题就提错了,E2W对应的灯是W2E,E2W的下一个灯是E2S。
我来给你解释一下枚举中的对象吧:
某灯("对应的灯","下一个灯"," 先暂时让灯是黑的")   
这是一个灯的对象。

首先我们分析,不说什么E呀、W呀、S呀,说实话,我看这些字母我也反应不过来,好好的程序非要用英文编写,擦了个DJ。
因为交通灯都是有对应的灯,对应的灯都是同时亮,同时灭的,比如,南和北的交通灯,两边的司机都应该同时看到灯变红或变绿,
所以八个方向上只考虑了四个灯,其他灯都是对应的,那么这四个灯都是什么呢?

我们可以对这四个灯进行分析:
我们先从东边分析,从东边过来的车有两条路线可以走,一个是左转一个是直行,在这里呢不考虑右转弯,因为右转弯是一直可以通行的。也不用纠结这问题,这是交通规定的。
东到西的对应的灯肯定就是西到东,东到西的下一个灯肯定是左转弯的,就是所谓的东到南,那么东到南的方向肯定有对应的灯,东到南对应的灯是西到北,可以用大脑想想,不要考虑老张那些字母。
我曾经过马路,认为交通灯就直行的方向才有灯呢,结果那天我差点被车撞了,我就看那车从我后面的方向过来了。
所以按照我的思路,直接就能把南到北,和南左转的方向,也就是南到西方向的灯推出来,自己推吧。

加油楼主

作者: 袁梦希    时间: 2013-6-2 15:53
然后你根据我的方法,对照着那些英文都一一添加好就可以了,希望可以帮到你,如果不会继续追问。
作者: 萌小子    时间: 2013-6-2 16:04
字母是对方向的简写:南S(South),北N(North),东E(East),西W(West),S2N就是南到北的灯,2表示to。
你说的八个灯是少了四个转弯的灯,张老师把所有的情况都划出来了,包括右转弯。因为这个是文字模拟的,所以需要使用提示文字,右转弯当然也需要提示出来了,比如:N2E,,S2W等
作者: 袁梦希    时间: 2013-6-3 11:50
唉  我就没分了
作者: 何俊森    时间: 2013-6-3 15:35
袁梦希 发表于 2013-6-3 11:50
唉  我就没分了

{:3_46:}什么没分?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2