Java实现龟兔赛跑

这篇博客介绍了一个使用Java编程实现的龟兔赛跑游戏。通过继承Animal类创建Rabbit和Turtle类,模拟比赛过程。比赛中,当任一方到达终点时,会调用回调方法结束比赛。博客强调了不推荐使用Thread的stop()方法,推荐使用interrupt()。在MainClass中,展示了比赛的回调机制,当乌龟获胜时,通知兔子停止跑步。
摘要由CSDN通过智能技术生成

使用继承Thread的方式来实现龟兔赛跑游戏

我们首先来看一下需求:

 开始编写代码:

首先我们创建一个动物抽象类Animal ,在Animal中定义一个runing的抽象方法

 注意:这里面有一个回调方法,定义它的目的就是当任意一方跑完200m后,调用回调方法,表示比赛结束,另一方停止跑步

 

接下来我们创建Rabbit类,继承一下Animal,调用里面的跑步方法

package com.ywt.mybatisplus.game;

/**
 * @author pc
 */
public class Rabbit extends Animal {
    @Override
    public void runing() {
        //兔子的速度
        int speed = 5;

        //总里程减去兔子每秒速度
        length -= speed;

        System.out.println("兔子跑了" + speed + "米,距离终点还有:" + length + "米");

        //如果兔子跑完
        if (length <= 0) {
            //总里程清空
            length = 0;
            System.out.println("兔子胜利!");
            if (calltoback != null) {
                //调用回调方法,结束比赛
                calltoback.win();
            }
        }
        //兔子没跑完
        try {
            //兔子每跑20米,休息1s
            if ((200 - length) % 20 == 0) {
                sleep(1000);
            }else {
                sleep(100);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

 然后创建一个乌龟的类Turtle

然后我们创建比赛结束类 Stop,需要实现Animal中我们定义的接口,然后谁跑完,谁调用win方法,(这里为了方便使用了stop()方法,建议在项目中不要使用stop)

 

stop()方法:该方法是直接中断进程,就好比直接拔掉电脑电源。

推荐使用:interrupt()

 

 

 

 然后我们创建MainClass类来开始比赛。

回调方法: 例如乌龟胜利,乌龟调用的win()方法,将乌龟的比赛结果赋值给兔子,兔子就停止跑步了

 运行,查看结果:

可以看到,兔子还剩25米没有跑完,但是乌龟结束比赛了,兔子也就停止跑步了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值