练习--Java猜数字游戏

#Java猜数字游戏
游戏说明
打开游戏提示开始游戏,还是结束游戏
开始游戏后会有计时功能,同时还有计分功能
下面来看代码分析
首先创建一个类,用来计时用的,代码如下
先定义三个变量,初始化时分秒

private int hour;  //小时
private int seconds;//秒
private int minutes;//分钟

因为是线程,我们就继承Thread类来实现

public class threaddemo extends Thread

并且我们需要重写run方法

@Override
public void run() {
    super.run();
     
}

然后在run方法里面写计时代码,同时需要休眠1s,保证计时与正常的一样

for (;;){
    for (hour=0;hour<24;hour++){
        for (minutes=0;minutes<60;minutes++){
            for(seconds=0;seconds<60;seconds++){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

然后我们还需要写获取时分秒的代码

//获取小时
public int getHour() {
    return hour;
}
//获取分钟
public int getMinutes() {
    return minutes;
}
//获取秒
public int getSeconds() {
    return seconds;
}

实现猜数字的代码如下,打开游戏提示开始游戏,还是结束游戏
输入1就开始游戏,输入2就是结束游戏,

System.out.println("欢迎来到猜数字游戏");
        System.out.println("输入1开始游戏,输入2结束游戏");
        //创建一个接收输入数据的对象
        Scanner sc=new Scanner(System.in);
        int sca=sc.nextInt();
        switch (sca){
 
            case 1:playgame();
                    break;
            case 2:System.exit(0);
                    break;
        }
    }

然后是开始游戏后的代码实现,先要创建一个计时的对象,以实现计时功能,

System.out.println("开始游戏啦");
        System.out.println("输入222是结束游戏哦");
        System.out.println("");
        //创建计时类的对象
        threaddemo th=new threaddemo();
        th.start();

然后还要创建一个置随机数对象,并且接受随机数

//置随机数
Random r=new Random();
//接收随机数
int ra=r.nextInt(100)+1;

然后还要接收用户的输入的数据,并且判断大于随机数还是小于随机数或者等于随机数,

Scanner sc = new Scanner(System.in);
          int sca = sc.nextInt();
          int aaa = sca;
          if (sca > 0 && sca > ra && sca < 100) {
              System.out.println("你猜大了");
          } else if (sca > 0 && sca < ra && sca < 100) {
              System.out.println("你猜小了");
          } else if (sca > 0 && sca == ra && sca < 100) {
              System.out.println("恭喜你,猜对了");

猜对之后就得分加1,还要判断是否继续游戏,继续就再次回到原处,执行playgame方法,如果结束游戏
就显示你的得分,并且显示游戏的总时长,
下面是得分变量的定义

private static int scores=0;

下面是判断是否继续游戏或者结束游戏,并且显示得分,还有游戏的总时长,还要有一个判断,判断输入的数字是小于还是大于随机数的范围,

System.out.println("输入1为继续");
    System.out.println("输入222为结束游戏");
    //创建一个输入数据的对象,判断是否继续
    Scanner scc = new Scanner(System.in);
    int scca = scc.nextInt();
    switch (scca) {
        case 1:
            playgame();
            break;
        case 222:
            System.out.println("您的游戏时间是:" + th.getHour() + "小时" + th.getMinutes() + "分钟" + th.getSeconds() + "秒");
            System.out.println("您的游戏得分为:" + scores);
            System.exit(0);
            break;
    }
} else if (aaa == 222 && aaa > 100) {
    System.out.println("您的游戏时间是:" + th.getHour() + "小时" + th.getMinutes() + "分钟" + th.getSeconds() + "秒");
    System.out.println("您的游戏得分为:" + scores);
    System.exit(0);
 
} else if (aaa < 100 || aaa > 100) {
    System.out.println("你输入的数字有误");
}

猜对后还要加分

scores++;

全代码如下,计时类

public class threaddemo extends Thread{
    private int hour;  //小时
    private int seconds;//秒
    private int minutes;//分钟
 
    //计时方法
    @Override
    public void run() {
        for (;;){
        for (hour=0;hour<24;hour++){
            for (minutes=0;minutes<60;minutes++){
                for(seconds=0;seconds<60;seconds++){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }}
 
    //获取小时
    public int getHour() {
        return hour;
    }
    //获取分钟
    public int getMinutes() {
        return minutes;
    }
    //获取秒
    public int getSeconds() {
        return seconds;
    }
}

测试类:

import java.util.Random;
import java.util.Scanner;
 
public class main {
    private static int scores=0;
    public static void main(String[] args) {
        System.out.println("欢迎来到猜数字游戏");
        System.out.println("输入1开始游戏,输入2结束游戏");
        //创建一个接收输入数据的对象
        Scanner sc=new Scanner(System.in);
        int sca=sc.nextInt();
        switch (sca){
 
            case 1:playgame();
                    break;
            case 2:System.exit(0);
                    break;
        }
    }
 
    public static void playgame() {
        System.out.println("开始游戏啦");
        System.out.println("输入222是结束游戏哦");
        System.out.println("");
        //创建计时类的对象
        threaddemo th=new threaddemo();
        th.start();
        //置随机数
        Random r=new Random();
        int ra=r.nextInt(100)+1;
        //创建一个输入数据的对象
        while (true) {
            Scanner sc = new Scanner(System.in);
            int sca = sc.nextInt();
            int aaa = sca;
            if (sca > 0 && sca > ra && sca < 100) {
                System.out.println("你猜大了");
            } else if (sca > 0 && sca < ra && sca < 100) {
                System.out.println("你猜小了");
            } else if (sca > 0 && sca == ra && sca < 100) {
                System.out.println("恭喜你,猜对了");
                scores++;
                System.out.println("输入1为继续");
                System.out.println("输入222为结束游戏");
                //创建一个输入数据的对象,判断是否继续
                Scanner scc = new Scanner(System.in);
                int scca = scc.nextInt();
                switch (scca) {
                    case 1:
                        playgame();
                        break;
                    case 222:
                        System.out.println("您的游戏时间是:" + th.getHour() + "小时" + th.getMinutes() + "分钟" + th.getSeconds() + "秒");
                        System.out.println("您的游戏得分为:" + scores);
                        System.exit(0);
                        break;
                }
            } else if (aaa == 222 && aaa > 100) {
                System.out.println("您的游戏时间是:" + th.getHour() + "小时" + th.getMinutes() + "分钟" + th.getSeconds() + "秒");
                System.out.println("您的游戏得分为:" + scores);
                System.exit(0);
 
            } else if (aaa < 100 || aaa > 100) {
                System.out.println("你输入的数字有误");
            }
        }
 
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,编写一个简单的数字游戏是很常见的练习。这里是一个基本的控制台版数字游戏的示例代码: ```java import java.util.Random; import java.util.Scanner; public class GuessNumberGame { private static final int MIN_NUMBER = 1; private static final int MAX_NUMBER = 100; private static int secretNumber; private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { // 生成随机数作为秘密数字 secretNumber = new Random().nextInt(MAX_NUMBER - MIN_NUMBER + 1) + MIN_NUMBER; System.out.println("欢迎来到数字游戏!我想了一个1到" + MAX_NUMBER + "之间的整数,请你是多少?"); // 循环进行测直到对为止 while (true) { System.out.print("请输入你的测:"); int guess = scanner.nextInt(); if (guess < secretNumber) { System.out.println("你数字太小了,请再试一次。"); } else if (guess > secretNumber) { System.out.println("你数字太大了,请再试一次。"); } else { System.out.println("恭喜你,对了!秘密数字就是:" + secretNumber); break; } } } } ``` 这个程序首先定义了一个范围从`MIN_NUMBER`到`MAX_NUMBER`的秘密数字,然后在一个循环中让用户输入测。如果数字小于或大于秘密数字,会给出相应的提示。当对时,游戏结束并输出正确答案。 如果你想要扩展这个游戏,比如添加测次数限制、提高难度(例如使用不连续的数字范围)或者提供提示,你可以按照这些思路进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值