美文网首页
(5条消息) java实现龟兔赛跑方法

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

作者: 学习微站 | 来源:发表于2022-10-30 21:51 被阅读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){}		}	}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

第二种方法

代码如下:

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();		}	}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

相关文章

  • 2020-06-14

    龟兔赛跑新编 自从上次龟兔赛跑,乌龟赢了兔子后,这个劲爆的消息传遍了森林的每个角落。看...

  • 龟兔比赛

    龟兔赛跑,兔因轻敌结果败于龟。 兔败属偶然。自然定律是:兔天生比龟跑得快得多。龟兔赛跑,兔虽败,但兔比龟会跑仍然是...

  • 龟兔?

    龟兔赛跑的故事大家都熟悉 。 回过头想想 ,龟兔为什么要赛跑 ?

  • 2018-02-09

    龟兔赛跑。 ...

  • java龟兔赛跑

    (模拟程序:龟兔赛跑)在这个问题中,我们将再现经典的龟兔赛跑。 程序中使用随机数生成法来开发一个模拟这一著名事件...

  • 龟兔赛跑(五)

    龟兔赛跑(五) 上一次龟兔赛跑,因为兔子贪睡而输给了“慢爬冠军”乌龟。消息传开,兔子家族的声誉严重受损。兔子再一次...

  • 龟兔赛跑(八)

    龟兔赛跑(八) ...

  • 学生习作 新龟兔赛跑 18级5班 ——贾琪

    新龟兔赛跑 ...

  • 新说“龟兔赛跑”

    今天陪小朋友看动画片,里面的一个小故事讲的是龟兔赛跑。龟兔赛跑——不是每个人都听过的故事吗?只是这次龟兔赛跑的故事...

  • 龟兔赛跑小古文

    龟兔赛跑 一日,龟兔复竞走。兔昨日探知前有火焰山难行,待坑龟。 ...

网友评论

      本文标题:(5条消息) java实现龟兔赛跑方法

      本文链接:https://www.haomeiwen.com/subject/ndgqtdtx.html