java 交通绘图_<JAVA图像学习笔记>十字路口交通模拟--操作系统模拟课后小项目...

该博客详细介绍了如何使用Java编程实现一个十字路口的交通模拟系统。通过迭代车辆列表,根据车辆位置和信号灯状态更新车辆移动,模拟交通规则。同时,提供了添加车辆到不同方向的功能。
摘要由CSDN通过智能技术生成

public voidactionPerformed(ActionEvent e){

Object source=e.getSource();if(source==timer){

Iterator it;nn

it=northCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.y==700)it.remove();if(car.y==250){if(bLight==true)continue;///Stop//}else if(car.y==250){

if(MyMutex.center[0][0]==0)MyMutex.center[0][0]--;else continue;///Stop

}else if(car.y==340){

MyMutex.center[0][0]++;

}else if(car.y==300){if(MyMutex.center[1][0]==0)MyMutex.center[1][0]--;else continue;///Stop

}else if(car.y==390){

MyMutex.center[1][0]++;

}else if(car.y==350){if(MyMutex.center[2][0]==0)MyMutex.center[2][0]--;else continue;

}else if(car.y==440){

MyMutex.center[2][0]++;

}else if(car.y==400){if(MyMutex.center[3][0]==0)MyMutex.center[3][0]--;else continue;

}else if(car.y==490){

MyMutex.center[3][0]++;

}

car.y+=10;

}///ns

it=snorthCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.y==700)it.remove();if(car.y==250){//if(bLight==true)continue;///Stop//}else if(car.y==250){

if(MyMutex.center[0][1]==0)MyMutex.center[0][1]--;else continue;///Stop

}else if(car.y==340){

MyMutex.center[0][1]++;

}else if(car.y==300){if(MyMutex.center[1][1]==0)MyMutex.center[1][1]--;else continue;///Stop

}else if(car.y==390){

MyMutex.center[1][1]++;

}else if(car.y==350){if(MyMutex.center[2][1]==0)MyMutex.center[2][1]--;else continue;

}else if(car.y==440){

MyMutex.center[2][1]++;

}else if(car.y==400){if(MyMutex.center[3][1]==0)MyMutex.center[3][1]--;else continue;

}else if(car.y==490){

MyMutex.center[3][1]++;

}

car.y+=10;

}/sn

it=southCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.y==0)it.remove();if(car.y==450){if(bLight==true)continue;///Stop//}else if(car.y==450){

if(MyMutex.center[3][3]==0)MyMutex.center[3][3]--;else continue;///Stop

}else if(car.y==360){

MyMutex.center[3][3]++;

}else if(car.y==400){if(MyMutex.center[2][3]==0)MyMutex.center[2][3]--;else continue;///Stop

}else if(car.y==310){

MyMutex.center[2][3]++;

}else if(car.y==350){if(MyMutex.center[1][3]==0)MyMutex.center[1][3]--;else continue;

}else if(car.y==260){

MyMutex.center[1][3]++;

}else if(car.y==300){if(MyMutex.center[0][3]==0)MyMutex.center[0][3]--;else continue;

}else if(car.y==210){

MyMutex.center[0][3]++;

}

car.y-=10;

}ss

it=ssouthCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.y==0)it.remove();if(car.y==450){//if(bLight==true)continue;///Stop//}else if(car.y==450){

if(MyMutex.center[3][2]==0)MyMutex.center[3][2]--;else continue;///Stop

}else if(car.y==360){

MyMutex.center[3][2]++;

}else if(car.y==400){if(MyMutex.center[2][2]==0)MyMutex.center[2][2]--;else continue;///Stop

}else if(car.y==310){

MyMutex.center[2][2]++;

}else if(car.y==350){if(MyMutex.center[1][2]==0)MyMutex.center[1][2]--;else continue;

}else if(car.y==260){

MyMutex.center[1][2]++;

}else if(car.y==300){if(MyMutex.center[0][2]==0)MyMutex.center[0][2]--;else continue;

}else if(car.y==210){

MyMutex.center[0][2]++;

}

car.y-=10;

}///ne

it=eastCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.x==0)it.remove();if(car.x==450){if(bLight==false)continue;///Stop//}else if(car.x==450){

if(MyMutex.center[0][3]==0)MyMutex.center[0][3]--;else continue;///Stop

}else if(car.x==360){

MyMutex.center[0][3]++;

}else if(car.x==400){if(MyMutex.center[0][2]==0)MyMutex.center[0][2]--;else continue;///Stop

}else if(car.x==310){

MyMutex.center[0][2]++;

}else if(car.x==350){if(MyMutex.center[0][1]==0)MyMutex.center[0][1]--;else continue;

}else if(car.x==260){

MyMutex.center[0][1]++;

}else if(car.x==300){if(MyMutex.center[0][0]==0)MyMutex.center[0][0]--;else continue;

}else if(car.x==210){

MyMutex.center[0][0]++;

}

car.x-=10;

}//se

it=seastCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.x==0)it.remove();if(car.x==450){//if(bLight==false)continue;///Stop//}else if(car.x==450){

if(MyMutex.center[1][3]==0)MyMutex.center[1][3]--;else continue;///Stop

}else if(car.x==360){

MyMutex.center[1][3]++;

}else if(car.x==400){if(MyMutex.center[1][2]==0)MyMutex.center[1][2]--;else continue;///Stop

}else if(car.x==310){

MyMutex.center[1][2]++;

}else if(car.x==350){if(MyMutex.center[1][1]==0)MyMutex.center[1][1]--;else continue;

}else if(car.x==260){

MyMutex.center[1][1]++;

}else if(car.x==300){if(MyMutex.center[1][0]==0)MyMutex.center[1][0]--;else continue;

}else if(car.x==210){

MyMutex.center[1][0]++;

}

car.x-=10;

}//nw

it=westCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.x==700)it.remove();if(car.x==250){if(bLight==false)continue;///Stop//}else if(car.x==250){

if(MyMutex.center[3][0]==0)MyMutex.center[3][0]--;else continue;///Stop

}else if(car.x==340){

MyMutex.center[3][0]++;

}else if(car.x==300){if(MyMutex.center[3][1]==0)MyMutex.center[3][1]--;else continue;///Stop

}else if(car.x==390){

MyMutex.center[3][1]++;

}else if(car.x==350){if(MyMutex.center[3][2]==0)MyMutex.center[3][2]--;else continue;

}else if(car.x==440){

MyMutex.center[3][2]++;

}else if(car.x==400){if(MyMutex.center[3][3]==0)MyMutex.center[3][3]--;else continue;

}else if(car.x==490){

MyMutex.center[3][3]++;

}

car.x+=10;

}///sw

it=swestCars.iterator();while(it.hasNext()){

Car car=(Car)it.next();if(car.x==700)it.remove();if(car.x==250){//if(bLight==false)continue;///Stop//}else if(car.x==250){

if(MyMutex.center[2][0]==0)MyMutex.center[2][0]--;else continue;///Stop

}else if(car.x==340){

MyMutex.center[2][0]++;

}else if(car.x==300){if(MyMutex.center[2][1]==0)MyMutex.center[2][1]--;else continue;///Stop

}else if(car.x==390){

MyMutex.center[2][1]++;

}else if(car.x==350){if(MyMutex.center[2][2]==0)MyMutex.center[2][2]--;else continue;

}else if(car.x==440){

MyMutex.center[2][2]++;

}else if(car.x==400){if(MyMutex.center[2][3]==0)MyMutex.center[2][3]--;else continue;

}else if(car.x==490){

MyMutex.center[2][3]++;

}

car.x+=10;

}

adjust();

repaint();

}else if(source==timerLight){

bLight=!bLight;if(bLight)hint.setText("Now Right-Left Road is Accessible!");else hint.setText("Now Up-Down Road is Accessible!");

}else if(source==testTimer){//northCars.add(new Car(0,0,260,50));//snorthCars.add(new Car(0,1,310,50));//southCars.add(new Car(1,0,440,650));//ssouthCars.add(new Car(1,1,410,650));//eastCars.add(new Car(2,0,650,260));//seastCars.add(new Car(2,1,650,310));//westCars.add(new Car(3,0,50,440));//swestCars.add(new Car(3,1,50,410));

}else if(source==westn){

westCars.add(new Car(3,0,50,440));

}else if(source==wests){

swestCars.add(new Car(3,1,50,410));

}else if(source==eastn){

eastCars.add(new Car(2,0,650,260));

}else if(source==easts){

seastCars.add(new Car(2,1,650,310));

}else if(source==northn){

northCars.add(new Car(0,0,260,50));

}else if(source==norths){

snorthCars.add(new Car(0,1,310,50));

}else if(source==southn){

southCars.add(new Car(1,0,440,650));

}else if(source==souths){

ssouthCars.add(new Car(1,1,410,650));

}/Swtich Table For Source Handling

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值