java控制红绿灯及模拟车辆运动
我想在一路口用java实现控制红绿灯,还能用java模拟汽车的运动,汽车的运动收红绿灯的控制,我用java编程,怎么实现,请高手指点。...
我想在一路口用java实现控制红绿灯,还能用java模拟汽车的运动,汽车的运动收红绿灯的控制,我用java编程,怎么实现,请高手指点。
展开
展开全部
写两个程序分别模拟红绿灯和汽车:
1)红绿灯程序以报文形式通知汽车程序;
2)汽车程序需要用多线程来实现。
3)红绿灯程序用个循环,每隔n分钟红绿灯转换,同时通知汽车程序;
1)红绿灯程序以报文形式通知汽车程序;
2)汽车程序需要用多线程来实现。
3)红绿灯程序用个循环,每隔n分钟红绿灯转换,同时通知汽车程序;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
信号灯一个类汽车一个类,规定信号灯和汽车的行为。主方法用两个线程控制实体对象的行为。试试吧,应该不难。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
交通灯一个类,汽车一个类。用多线程实现同步,代码如下:
public class Temp
{
public static final Boolean RED=false;
public static final Boolean GREEN=true;
Boolean lightControl=GREEN;
Light light=new Light();
Car car=new Car();
public static void main(String[] args){
Temp temp=new Temp();
temp.start();
}
public void start()
{
light.print();
Thread lightThread=new Thread(new Runnable(){
public void run(){
light.run();
}
});
Thread carThread=new Thread(new Runnable(){
public void run(){
car.run();
}
});
lightThread.start();
carThread.start();
}
class Light
{
public void count(){
short count=5;
while (count>-1)
{
try
{
Thread.sleep(1000);
System.out.println("还有"+count+"秒");
count--;
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
change();
}
public void change(){
lightControl=!lightControl;
print();
}
public void print(){
if(lightControl){
System.out.println("现在是绿灯!");
}else{
System.out.println("现在是红灯!");
}
}
public synchronized void run(){
while(true){
count();
if (lightControl)
{
car.go();
}
}
}
}
class Car
{
public synchronized void go(){
this.notify();
}
public synchronized void stop(){
System.out.println(" 汽车停止");
try
{
this.wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
public void run(){
while(true){
if(!lightControl){this.stop();}
System.out.println(" 汽车运行");
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}
public class Temp
{
public static final Boolean RED=false;
public static final Boolean GREEN=true;
Boolean lightControl=GREEN;
Light light=new Light();
Car car=new Car();
public static void main(String[] args){
Temp temp=new Temp();
temp.start();
}
public void start()
{
light.print();
Thread lightThread=new Thread(new Runnable(){
public void run(){
light.run();
}
});
Thread carThread=new Thread(new Runnable(){
public void run(){
car.run();
}
});
lightThread.start();
carThread.start();
}
class Light
{
public void count(){
short count=5;
while (count>-1)
{
try
{
Thread.sleep(1000);
System.out.println("还有"+count+"秒");
count--;
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
change();
}
public void change(){
lightControl=!lightControl;
print();
}
public void print(){
if(lightControl){
System.out.println("现在是绿灯!");
}else{
System.out.println("现在是红灯!");
}
}
public synchronized void run(){
while(true){
count();
if (lightControl)
{
car.go();
}
}
}
}
class Car
{
public synchronized void go(){
this.notify();
}
public synchronized void stop(){
System.out.println(" 汽车停止");
try
{
this.wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
public void run(){
while(true){
if(!lightControl){this.stop();}
System.out.println(" 汽车运行");
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |