问题描述
我这个程序龟兔是在直行跑道上,老师要求龟兔在环形跑道上赛跑,哪位高手可以帮忙改一改啊,只要改成在环形跑道上赛跑就可以、THANKS.importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Image;importjavax.swing.JApplet;publicclassRabTor1extendsJAppletimplementsRunnable{Imagebackpic,rabbit,tortoise;intx1=0,y1=0;intx2=0,y2=100;//图片的位移!intrab_road=0,tor_road=0;//图片跑的路程!intrab_time=0,tor_time=0;//图片移动用的时间Stringstr1="rabbit",str2="tortoise";//给字符串付初值!//booleanstop=false;publicvoidinit()//Applet中的初始化函数有类中构造函数的作用!最先调用!{backpic=getImage(getCodeBase(),"back.gif");//将图片对象与图片绑定!rabbit=getImage(getCodeBase(),"rabbit.jpg");tortoise=getImage(getCodeBase(),"tortoise.jpg");//System.out.println("intintintitnitn!");}publicvoidpaint(Graphicsg)//此函数第四个调用!{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");}publicvoidstart()//此函数第二个调用!{Threadrab=newThread(this,"rabbit");//创建一个兔子线程,this表示在这个类中找.rabbit是线程的名子.Threadtor=newThread(this,"tortoise");rab.start();//线程对象调用start()方法!然后调用对应的run()方法!tor.start();}publicvoidrun()//此函数第三个调用!{booleanstop=false;//标志,此函数的精典之处.控制兔子,龟什么时候停!while(!stop){try{Thread.currentThread().sleep(1000);//当前线程调用sleep()函数.}catch(InterruptedExceptionex){}StringthreadName=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(InterruptedExceptionex){}rab_time+=24;}if(rab_road==60){stop=true;str1="兔子总用时(秒):"+rab_time;}}elseif(threadName.equals("tortoise"))//乌龟移动实现的方法!{x2+=10;tor_road+=1;tor_time++;if(tor_road==60){stop=true;str2="乌龟总用时(秒):"+tor_time;}}repaint();}}}
解决方案
解决方案二:
帮你顶下了!