JAVA的程序设计,设计一个龟兔赛跑的线程类模拟参与赛跑。

利用多线程技术模拟龟兔赛跑,设计一个线程类模拟参与赛跑的角色,创建该类的两个对象分别代表乌龟和兔子,让兔子跑快些,但在路上睡眠休息时间长些,到终点时线程运行结束。... 利用多线程技术模拟龟兔赛跑,设计一个线程类模拟参与赛跑的角色,创建该类的两个对象分别代表乌龟和兔子,让兔子跑快些,但在路上睡眠休息时间长些,到终点时线程运行结束。 展开
 我来答
捷彩hG
推荐于2017-11-26 · TA获得超过107个赞
知道答主
回答量:145
采纳率:0%
帮助的人:110万
展开全部
感觉挺有趣的,试着写了个~

public static void main(String[] arg) {
new wugui().run();
new tuzi().run();
}

static class wugui {
final int sudu = 4;// 乌龟的速度是每秒4米
public static boolean hasEnd = false;// 是否已经跑到终点
public void run() {
new Thread() {
public void run() {
int distance = 0;
while (distance < 100) {
try {
Thread.sleep(1000);
distance += sudu;
System.out.println("小乌龟跑了" + distance + "米");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
hasEnd = true;
if (tuzi.hasEnd) {
System.out.println("呜呜,差一点点就赢了~");
} else {
System.out.println("胜利是属于有准备的人的,你的自大害了你!-------乌龟赢了");
}
}
}.start();
}
}

static class tuzi {
final int sudu = 5;// 兔子的速度是每秒5米
public static boolean hasEnd = false;// 是否已经跑到终点
public void run() {
new Thread() {
@Override
public void run() {
int distance = 0;// 跑了多少米
boolean hasXiuXi = false;// 是否休息过
while (distance < 100) {
try {
Thread.sleep(1000);
distance += sudu;
System.out.println("小兔子跑了" + distance + "米");
if (distance > 50 && !hasXiuXi) {
System.out.println("小兔子累了,决定休息一会儿~");
Thread.sleep((long) (10000 * Math.random()));
System.out.println("小兔子休息够了,又开始跑了,决一胜负吧!");
hasXiuXi = true;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
hasEnd = true;
if (wugui.hasEnd) {
System.out.println("呜呜,早知道就不休息了~");
} else {
System.out.println("哇哈哈,你个战5渣也想赢我~~做梦去吧!!-------兔子赢了");
}
}
}.start();
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式