本帖最后由 谢述华 于 2012-5-19 16:08 编辑
大家都不喜欢大段代码,不过我保证只读注释部分就能全部看懂。
张老师的作法个人感觉太复杂了(Lamp中的opposite、valueOf、blackout...),都看不懂。自己做了一个实现部分功能的代码,感觉扩展下也能实现比较复杂的功能...
请问各位老师同学们,是不是工作的时候都不能用下面这种方法解决问题,只能用张老师那样比较标准的表示方法呀?
有没有比较统一的标准啊?是不是主函数只能是简单的调用函数。控制等部分在安全性和扩展性方面必须分开写呀?
求大家帮帮忙,指点下。万分不解....- public class AbsDem{
- static int[]x0={0,0,0}; //定义等待通过汽车
- static int[]x1={0,0,0};
- static int[]x2={0,0,0};
- static int[]x3={0,0,0};
- public static void main(String[] args1) {
- road west=new road(x0); //定义道路
- road east=new road(x1);
- road south=new road(x2);
- road north=new road(x3);
- for(int i=0;i<69;i++){ //开始运行,加上while或者改变数字均可控制运行次数。
- west.car=x0; //将道路新状态传送road中
- west.addCar(); //车辆的随即增加
- x0=west.redCar(i%4); //将road计算结果保持。四种状态%区分,可扩展
- east.car=x1;
- east.addCar();
- x1= east.redCar(i%4);
- south.car=x2;
- south.addCar();
- x2=south.redCar((i+2)%4);
- north.car=x3;
- north.addCar();
- x3=north.redCar((i+2)%4);
- for(int j:x0) //输出语句
- System.out.print(j+" ");
- System.out.println("");
- for(int j:x1)
- System.out.print(j+" ");
- System.out.println("");
- for(int j:x2)
- System.out.print(j+" ");
- System.out.println("");
- for(int j:x3)
- System.out.print(j+" ");
- System.out.println("");
- System.out.println("");
- }
- }
- }
- class road{ //定义道路
- int[]car;
- road (int[] car){ //初始化构造函数
- this.car=car;}
- void addCar(){ //定义增加车辆方法
- for (int i = 0;i<3;i++)
- car[i]+=((int) Math.ceil(Math.random()*30)-1);
- }
- int[] redCar(int lamp){ //定义减少车辆方法
- if(car[2]>10) car[2]-=10; //右行车辆不受灯状态控制
- else car[2]=0;
- switch(lamp){ //直行车辆
- case 1:
- if(car[0]>10)
- car[0]-=10;
- else if(car[0]<=10)
- car[0]=0;
- break;
- case 2:{ //左行车辆
- if(car[1]>10)
- car[1]-=10;
- else if(car[1]<=10)
- car[1]=0;
- break;
- }
- }
- return car;
- }
- }
复制代码 |
|