A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何苦似梦离 中级黑马   /  2014-2-23 07:38  /  1786 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何苦似梦离 于 2014-2-23 07:42 编辑

当时候,我脑袋都爆炸了,就因为那个什么N2W之类的方向,我干脆就用这种办法模拟,就是老张的那个7K面试题,我简化了一下,那个交通灯,他用一条路线对应一个灯,太费资源了 ,我用了3个灯,4条1个,4条1个,4条个(这是常绿的),然后,路的名称就我们自己输入进入就可以了,简单发一下灯,和MainClass代码灯代码:

  1. package cn.apple.Traffic;

  2. import java.util.concurrent.Executors;
  3. import java.util.concurrent.ScheduledExecutorService;
  4. import java.util.concurrent.TimeUnit;

  5. public class LampController
  6. {
  7.         private TrafficLamp currentLamp;
  8.         
  9.         public LampController()
  10.         {
  11.                 currentLamp = TrafficLamp.LAMP1;
  12.                 currentLamp.light();
  13.                
  14.                 ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
  15.                 timer.scheduleAtFixedRate(
  16.                                 new Runnable()                                //一个定时器,每隔10秒转换灯
  17.                                 {
  18.                                         @Override
  19.                                         public void run()
  20.                                         {
  21.                                                 currentLamp = currentLamp.blackOut();
  22.                                                 
  23.                                                 System.out.println(currentLamp+"转绿灯");
  24.                                         }
  25.                                        
  26.                                 },
  27.                                 10,
  28.                                 10,
  29.                                 TimeUnit.SECONDS);
  30.                
  31.                
  32.         }
  33. }
复制代码
MainClass代码:

  1. package cn.apple.Traffic;

  2. public class MainClass
  3. {

  4.         public static void main(String[] args)
  5.         {
  6.                 new Road("南到北","LAMP1");
  7.                 new Road("南到西","LAMP1");
  8.                 new Road("南到东","AFTENGREEN");
  9.                 new Road("北到南","LAMP1");
  10.                 new Road("北到西","AFTENGREEN");;
  11.                 new Road("北到东","LAMP1");
  12.                
  13.                
  14.                 new Road("西到东","LAMP2");
  15.                 new Road("西到北","LAMP2");
  16.                 new Road("西到南","AFTENGREEN");
  17.                 new Road("东到西","LAMP2");
  18.                 new Road("东到北","AFTENGREEN");
  19.                 new Road("东到南","LAMP2");
  20.                
  21.                
  22.                 new LampController();
  23.         }
复制代码




评分

参与人数 1技术分 +2 收起 理由
何伟超 + 2

查看全部评分

17 个回复

倒序浏览
本帖最后由 e.c 于 2014-2-23 08:18 编辑

没看到楼主Lamp和Road的代码,所以不清楚具体情况。
南到北、南到西、北到南、北到东 这四条路全部由LAMP1这个灯控制。四条路的车同时可以开的吗?如果是,会撞车的。(南到北的车正开着,北到东的车也开着?)
西到东。。。。那四条路也同样。

点评

我相同了,你也是对的,不过你是单行道,我这是双行道.  发表于 2014-2-23 08:50
Tanks,南到北的车正开着,北到东的车也开着,我们这就是这样的.  发表于 2014-2-23 08:44
http://sobar.soso.com/tie/50286958.html  发表于 2014-2-23 08:43
等下,我马上跑到街上去看灯是怎么样的,  发表于 2014-2-23 08:37

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
e.c 发表于 2014-2-23 08:15
没看到楼主Lamp和Road的代码,所以不清楚具体情况。
南到北、南到西、北到南、北到东 这四条路全部由LAMP1 ...

我们想象现实生活中,一旦绿灯有几条路可以走,南北两条,南西,北东,南东,北西,西南,东北,8条对吗.?这样吧,红灯了,有几条路没办法走.?4条对吗.?那就还剩8条可以走.
回复 使用道具 举报
好像不是的。。。

未命名.jpg (22.7 KB, 下载次数: 21)

如图。北-东和南-北 方向的车可以同时开的?

如图。北-东和南-北 方向的车可以同时开的?

点评

如果我们这样想,那么东边是不是就没法过去了,绿灯都没发过,那红灯更是没法过.  发表于 2014-2-23 13:03
e.c
南-西的话,你别忘了北-南的车也正在开着。  发表于 2014-2-23 11:31
不过,我们这北到东,没有路,我是走的南到西  发表于 2014-2-23 09:27
我也想过这种情况,但确实是可以的,我记得我骑车,就能这样,我骑的是电瓶车.  发表于 2014-2-23 09:26
回复 使用道具 举报
何苦似梦离 发表于 2014-2-23 08:28
我们想象现实生活中,一旦绿灯有几条路可以走,南北两条,南西,北东,南东,北西,西南,东北,8条对吗. ...

楼下有图
你看完了再看下图里的这两条道上的车可以同时通行吗?
回复 使用道具 举报
我看N2S S2N也脑袋短路了,后来没办法。画了一张北南、西东的十字架图对着看。就很清晰了。
回复 使用道具 举报
e.c 中级黑马 2014-2-23 11:30:37
7#
e.c 发表于 2014-2-23 09:06
好像不是的。。。

南-西的话,你别忘了北-南的车也正在开着。

点评

e.c
那四条线路要另外用两个灯控制通行  发表于 2014-2-23 16:34
那是不是绿灯红灯北边都没法去东边呢?  发表于 2014-2-23 14:02
回复 使用道具 举报
想法不错,支持
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马