⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trafficcontroller.java

📁 交通灯路口的一个小程序,控制四个灯,其中南灯有一个外加左转灯
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;/** * TrafficController class controls all traffic light states changing * * @author Hao Chen * @version 1.0 */public class TrafficController{    DirectionGroup[] DirectionGroupArray;    int North= 0;    int South= 1;    int East= 2;    int West= 3;	TrafficLight Red;	TrafficLight Yellow;	TrafficLight Green;	TrafficLight TurnLeft;  /**   * Creates a Traffic System class   *   *   */	public TrafficController() {		 Red=new TrafficLight(2);		 Yellow=new TrafficLight(1);		 Green=new TrafficLight(0);		 TurnLeft=new TrafficLight(3);         DirectionGroupArray=new DirectionGroup[4];         DirectionGroupArray[0]=new DirectionGroup(North);         initialization(North,false);         DirectionGroupArray[1]=new DirectionGroup(South);         initialization(South,false);         DirectionGroupArray[2]=new DirectionGroup(East);         initialization(East, true);         DirectionGroupArray[3]=new DirectionGroup(West);         initialization(West,false);    }  /**   * Initialize all lights and directions   *   *   */    public String initialization(int direction, boolean turnLeft)    {           if (direction==North)             {			  DirectionGroupArray[direction].AddLight(Green);              DirectionGroupArray[direction].AddLight(Yellow);              DirectionGroupArray[direction].AddLight(Red);		     }            if (direction ==South)             {			  DirectionGroupArray[direction].AddLight(Green);              DirectionGroupArray[direction].AddLight(Yellow);              DirectionGroupArray[direction].AddLight(Red);		     }           if(direction==East )            {				 DirectionGroupArray[direction].AddLight(Red);				 DirectionGroupArray[direction].AddLight(TurnLeft);				 DirectionGroupArray[direction].AddLight(Green);			     DirectionGroupArray[direction].AddLight(Yellow);		    }	           if(direction==West )            {				 DirectionGroupArray[direction].AddLight(Red);			     DirectionGroupArray[direction].AddLight(Green);			     DirectionGroupArray[direction].AddLight(Yellow);		    }            return null;	}  /**   * EAch tick method will change the state of all traffic lights   *   *   */public void tick(){	if(DirectionGroupArray[North].GetFirstLight()==Green)	{	    changeState(North);	    changeState(South);	}    else if(DirectionGroupArray[North].GetFirstLight()==Yellow)	{	    changeState(North);		changeState(South);		changeState(East);	}else if(DirectionGroupArray[North].GetFirstLight()==Red&&DirectionGroupArray[East].GetFirstLight()==TurnLeft)	{		changeState(East);		changeState(West);	}else if(DirectionGroupArray[North].GetFirstLight()==Red&&DirectionGroupArray[East].GetFirstLight()==Green)	{		changeState(East);		changeState(West);	}	else if(DirectionGroupArray[North].GetFirstLight()==Red&&DirectionGroupArray[East].GetFirstLight()==Yellow)		{			changeState(North);			changeState(South);			changeState(East);			changeState(West);	}	for (int i=0; i<4;i++)	System.out.print(DirectionGroupArray[i].GetFirstLight().light);	System.out.println();}  /**   * changestate change the state of a single light   *   *   */public void changeState(int directionTemp){	TrafficLight trafficLightTemp;	trafficLightTemp=DirectionGroupArray[directionTemp].removeFirst();	DirectionGroupArray[directionTemp].AddLight(trafficLightTemp);}  /**   * Executable function   * create the test cases   *   */	public static void main(String[] args) {       TrafficController a= new TrafficController();       a.tick();       a.tick();       a.tick();       a.tick();       a.tick();       a.tick();       a.tick();	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -