该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我这个程序龟兔是在直行跑道上,老师要求龟兔在环形跑道上赛跑,哪位高手可以帮忙改一改啊,只要改成在环形跑道上赛跑就可以、THANKS.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JApplet;
public class RabTor1 extends JApplet implements Runnable{
Image backpic,rabbit,tortoise;
int x1=0,y1=0;
int x2=0,y2=100;//图片的位移!
int rab_road=0,tor_road=0;//图片跑的路程!
int rab_time=0,tor_time=0;//图片移动用的时间
String str1="rabbit",str2="tortoise";//给字符串付初值!
//boolean stop=false;
public void init()//Applet中的初始化函数有类中构造函数的作用!最先调用!
{
backpic = getImage(getCodeBase(), "back.gif");//将图片对象与图片 绑定!
rabbit = getImage(getCodeBase(), "rabbit.jpg");
tortoise = getImage(getCodeBase(), "tortoise.jpg");
//System.out.println("intintintitnitn!");
}
public void paint(Graphics g)//此函数第四个调用!
{
g.setColor(Color.green);
g.fillRect(0, 0, 800, 800);
//g.drawImage(backpic, 0, 0,800, 600,this);
g.setColor(Color.black);
g.drawImage(rabbit, x1, y1, 60, 60, this);
g.drawString(str1, x1, y1+80);
g.drawImage(tortoise, x2, y2, 60, 60, this);
g.drawString(str2, x2, y2+80);
// System.out.println("jjjjjjjj");
}
public void start()//此函数第二个调用!
{
Thread rab = new Thread(this, "rabbit");//创建一个兔子线程,this表示在这个类中找.rabbit是线程的名子.
Thread tor = new Thread(this, "tortoise");
rab.start();//线程对象调用start()方法!然后调用对应的run()方法!
tor.start();
}
public void run()//此函数第三个调用!
{
boolean stop=false;//标志,此函数的精典之处.控制兔子,龟什么时候停!
while(!stop)
{
try
{
Thread.currentThread().sleep(1000);//当前线程调用sleep()函数.
}
catch (InterruptedException ex) {}
String threadName=Thread.currentThread().getName();//取得当前线程的名子.
if(threadName.equals("rabbit"))//兔子动的实现方法!
{
str1="rabbit";
x1=x1+30;
rab_time++;
rab_road+=3;
if(rab_road%24==0)
{
str1="兔子睡眠";
try
{
Thread.currentThread().sleep(24000);
}
catch (InterruptedException ex) {}
rab_time+=24;
}
if(rab_road==60)
{
stop=true;
str1="兔子总用时(秒):"+rab_time;
}
}
else if(threadName.equals("tortoise"))//乌龟移动实现的方法!
{
x2+=10;
tor_road+=1;
tor_time++;
if(tor_road==60)
{
stop=true;
str2="乌龟总用时(秒):"+tor_time;
}
}
repaint();
}
}
}