(5条消息) java实现龟兔赛跑方法

2022-10-30  本文已影响0人  学习微站

java实现龟兔赛跑

第一种方法

代码如下:

/** *  */package a;/** * @author Administrator * */public class Race {		public static void main(String arg[]) {		Animal a1,a2;		a1 = new Animal("rabit",100);		a2 = new Animal("turtle",20);		a2.setPriority(Thread.MAX_PRIORITY);//让乌龟的运行优先级更高		a1.start();		a2.start();		// TODO Auto-generated method stub	}}class Animal extends Thread{	int speed;//速度	public Animal(String str,int speed){		super(str);//线程名用动物名代表		this.speed=speed;	}	public void run(){		int distance = 0;		int sleepTime;		while(distance<=1000){			System.out.println(getName()+"is at"+distance);			try{				distance+=speed;//每次跑的距离简单用速度计算				sleepTime = (int)(speed+Math.random()*speed);				//速度快休息时间更长				sleep(sleepTime);			}catch(InterruptedException e){}		}	}}

第二种方法

代码如下:

package b;import java.awt.*;import java.applet.*;import java.awt.event.*;public class tt extends Applet implements Runnable {		int BeginX=200,EndX=400;	int RabbitX=BeginX,RabbitY=100;	int TortoiseX=BeginX,TortoiseY=200;	int RabbitRestTime=800,TortoiseRestTime=50;	int RabbitSpeed=15,TortoiseSpeed=1;	int state=0;	Thread rabbit;	Thread tortoise;	public void init(){		rabbit=new Thread(this,"rabbit");		tortoise=new Thread(this,"tortoise");	}	public void paint(Graphics g){		setSize(600,350);		g.drawString("龟",TortoiseX,TortoiseY);		g.drawString("兔",RabbitX,RabbitY);		g.setColor(Color.red);		for(int j=70;j<=230;j+=10)			g.drawString("|",EndX+8,j);		g.setColor(Color.black);		if(state==1) g.drawString("兔子赢了!!", 250, 300);		else if(state==2) g.drawString("乌龟赢了!!", 250, 300);	}	public void start(){		rabbit.start();		tortoise.start();	}	public void run(){		String currentRunning;		while(state==0){			currentRunning=Thread.currentThread().getName();			if(currentRunning.equals("rabbit")){				try{					Thread.sleep((int)(Math.random()*RabbitRestTime));				}				catch(InterruptedException e){}					RabbitX+=RabbitSpeed;					if(RabbitX>EndX)RabbitX=EndX;							}			else if(currentRunning.equals("tortoise")){				try{					Thread.sleep((int)(Math.random()*TortoiseRestTime));				}				catch(InterruptedException e){}				TortoiseX+=TortoiseSpeed;				if(TortoiseX>EndX)TortoiseX=EndX;			}			if(RabbitX==EndX)state=1;			else if(TortoiseX==EndX)state=2;			repaint();		}	}}
上一篇 下一篇

猜你喜欢

热点阅读