Java编程入门:猜数字游戏

目录

1.介绍及功能

2.具体介绍

前置知识

导入必要的类和库

设置游戏参数

初始化游戏

进行游戏循环

结束游戏并统计结果

3.完整代码

4.运行展示


 

1.介绍及功能

介绍: 猜数字游戏是一种经典的猜测游戏,玩家需要根据提示猜测一个目标数字。在本篇文章中,我们将使用Java编程语言来实现一个简单的猜数字游戏。

功能:1.可以自定义生成数字区间

           2.可以设置玩家猜的次数

           3.可以统计游戏进行了几次

2.具体介绍

前置知识

Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float、byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1 的随机数。

导入必要的类和库

在开始编写代码之前,我们需要导入java.util.Scanner类,以便从用户输入中获取数据。这个类提供了一种方便的方式来读取用户输入。

import java.util.Scanner;

 

设置游戏参数

我们需要设置一些游戏参数,例如目标数字的范围、猜测次数等。在这个例子中,我们将设置目标数字的范围为99到66之间(不包括这两个数字),猜测次数为3次。

int targetMin = 66;
int targetMax = 99;
int maxAttempts = 3;

 

初始化游戏

在每次游戏开始之前,我们需要进行一些初始化操作。这包括生成一个随机的目标数字,并打印游戏的提示信息。

int target = generateRandomNumber(targetMin, targetMax);
System.out.println("目标已经生成,数字在" + targetMin + "到" + targetMax + "之间,不包含这两个数字," + maxAttempts + "次机会,输入-1游戏结束");

 

进行游戏循环

在游戏循环中,玩家将根据提示输入猜测的数字,并根据猜测结果进行相应的处理。循环将继续,直到玩家猜中目标数字或猜测次数用尽。

while (attempts > 0) {
    // 获取玩家输入的猜测数字
    int guess = scanner.nextInt();
    attempts--;

    // 处理玩家输入的猜测数字
    if (guess == -1) {
        // 玩家选择结束游戏
        gameWon = true;
        gameOver = true;
        break;
    } else if (guess >= targetMax || guess <= targetMin) {
        // 玩家输入的数字超出范围
        System.out.println("请输入在" + targetMin + "到" + targetMax + "之间的数");
        continue;
    } else if (guess == target) {
        // 玩家猜中目标数字
        gameWon = true;
        System.out.println("恭喜你猜对了,这次数字是" + target + "本次共猜了" + (maxAttempts - attempts) + "次");
        break;
    } else if (guess > target) {
        // 玩家猜的数字比目标值大
        System.out.println("你猜的数字比目标值大");
    } else {
        // 玩家猜的数字比目标值小
        System.out.println("你输入的值比目标值小");
    }
}

 

结束游戏并统计结果

当游戏结束时,我们将打印出玩家的游戏统计信息,包括玩了多少把游戏和猜对了多少次。

System.out.println("本次共玩了" + totalGames + "把,其中猜对了" + totalWins + "把"); 

3.完整代码

import java.util.Scanner;

public class shuzhiyouxi {

    public static void main(String[] args) {
        String redText = "\u001B[31m";
        String blueText = "\u001B[34m";
        String resetText = "\u001B[0m";
        Scanner in = new Scanner(System.in);
        //游戏设置
        int zhuidashu = 99;
        int zhuixiaoshu = 66;
        int youxichishu = 3;
        //游戏统计
        int youxijinxingjichi = 0;
        int youxiyinglejichi = 0;
        //是否结束游戏
        boolean jeishu = false;

        while (!jeishu) {
            //游戏初始化
            int n = youxichishu;
            int cha = zhuidashu - zhuixiaoshu;
            double x = Math.random();
            int mo = ((int) (x * cha * 100)) % cha;
            mo += zhuixiaoshu;
            //System.out.println(mo);  生成数字的值
            if (mo <= zhuixiaoshu) {
                mo = zhuixiaoshu + 1;
            }
            if (mo >= zhuidashu) {
                mo = zhuidashu - 1;
            }

            System.out.println(blueText+"============================猜数字==========================="+redText);
            System.out.println(redText+"目标已经生成,数字在" + zhuixiaoshu + "到" + zhuidashu + "之间,不包含这两个数字," + n + "次机会,输入-1游戏结束"+resetText);
            //本次游戏开始
            boolean kaishi = true;
            //本次是否猜中
            boolean jeishu1 = false;

            while (n > 0) {
                if (!jeishu1)
                    System.out.println("还有" + n + "次机会,请输入所猜的数字");
                int shuru = in.nextInt();
                n--;
                if (shuru == -1) {

                    jeishu1 = true;
                    jeishu = true;
                    break;
                }
                if (shuru >= zhuidashu || shuru <= zhuixiaoshu) {
                    System.out.println("请输入在" + zhuixiaoshu + "到" + zhuidashu + "之间的数");
                    continue;
                }
                if (kaishi) {
                    youxijinxingjichi++;
                    kaishi = false;
                }

                if (shuru == mo) {
                    youxiyinglejichi++;
                    jeishu1 = true;
                    System.out.println("恭喜你猜对了,这次数字是" + mo + "本次共猜了" + (youxichishu - n) + "次");
                    break;


                } else if (shuru > mo) {
                    System.out.println("你猜的数字比目标值大");
                } else {
                    System.out.println("你输入的值比目标值小");
                }
            }
            if (!jeishu1) {
                System.out.println("很遗憾本次没有猜中,本次数字是:" + mo);
                boolean jieshu = false;
            }
        }
        System.out.println("本次共玩了" + youxijinxingjichi + "把,其中猜对了" + youxiyinglejichi + "把");
    }
}

4.运行展示

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值