Skip to content

项目 2:猜数字游戏

项目概述

猜数字游戏是一个经典的控制台游戏,程序会随机生成一个指定范围内的数字,玩家需要通过输入猜测来找出这个数字。游戏会根据玩家的猜测给出提示,直到玩家猜对为止。

功能需求

  1. 随机生成数字:程序随机生成一个 1-100 之间的整数
  2. 用户输入:玩家输入猜测的数字
  3. 提示功能:根据玩家的猜测,给出"太大"、"太小"或"猜对了"的提示
  4. 统计次数:记录玩家猜测的次数
  5. 循环游戏:玩家猜对后,可以选择是否重新开始游戏

技术实现

java
import java.util.Random;
import java.util.Scanner;

public class NumberGuessingGame {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        boolean playAgain = true;
        
        while (playAgain) {
            System.out.println("===================================");
            System.out.println("        猜数字游戏");
            System.out.println("===================================");
            System.out.println("我已经想好了一个 1-100 之间的数字,");
            System.out.println("你需要通过猜测来找出这个数字。");
            System.out.println("===================================");
            
            // 生成 1-100 之间的随机数
            int targetNumber = random.nextInt(100) + 1;
            int guessCount = 0;
            boolean guessedCorrectly = false;
            
            while (!guessedCorrectly) {
                System.out.print("请输入你的猜测: ");
                int userGuess = scanner.nextInt();
                guessCount++;
                
                if (userGuess < targetNumber) {
                    System.out.println("太小了!再试一次。");
                } else if (userGuess > targetNumber) {
                    System.out.println("太大了!再试一次。");
                } else {
                    System.out.println("===================================");
                    System.out.println("恭喜你猜对了!");
                    System.out.println("你用了 " + guessCount + " 次猜测。");
                    System.out.println("===================================");
                    guessedCorrectly = true;
                }
            }
            
            // 询问是否再玩一次
            System.out.print("是否再玩一次?(y/n): ");
            scanner.nextLine(); // 消费换行符
            String playAgainInput = scanner.nextLine();
            playAgain = playAgainInput.equalsIgnoreCase("y");
        }
        
        System.out.println("谢谢玩猜数字游戏!再见!");
        scanner.close();
    }
}

代码解析

  1. 导入包

    • java.util.Random:用于生成随机数
    • java.util.Scanner:用于读取用户输入
  2. 主方法

    • 创建 Scanner 和 Random 对象
    • 使用 playAgain 变量控制游戏循环
  3. 游戏循环

    • 显示游戏欢迎信息
    • 生成 1-100 之间的随机数
    • 初始化猜测次数计数器
    • 使用 guessedCorrectly 变量控制猜测循环
  4. 猜测循环

    • 读取用户输入的猜测
    • 增加猜测次数
    • 根据猜测与目标数字的大小关系给出提示
    • 当猜对时,显示恭喜信息和猜测次数
  5. 重新游戏

    • 询问用户是否再玩一次
    • 根据用户输入决定是否继续游戏
  6. 结束游戏

    • 显示结束信息
    • 关闭 Scanner

运行示例

运行结果

===================================
        猜数字游戏
===================================
我已经想好了一个 1-100 之间的数字,
你需要通过猜测来找出这个数字。
===================================
请输入你的猜测: 50
太大了!再试一次。
请输入你的猜测: 25
太小了!再试一次。
请输入你的猜测: 37
太大了!再试一次。
请输入你的猜测: 31
太小了!再试一次。
请输入你的猜测: 34
太小了!再试一次。
请输入你的猜测: 35
恭喜你猜对了!
你用了 6 次猜测。
===================================
是否再玩一次?(y/n): y
===================================
        猜数字游戏
===================================
我已经想好了一个 1-100 之间的数字,
你需要通过猜测来找出这个数字。
===================================
请输入你的猜测: 50
太小了!再试一次。
请输入你的猜测: 75
太大了!再试一次。
请输入你的猜测: 62
太小了!再试一次。
请输入你的猜测: 68
太大了!再试一次。
请输入你的猜测: 65
恭喜你猜对了!
你用了 5 次猜测。
===================================
是否再玩一次?(y/n): n
谢谢玩猜数字游戏!再见!

扩展功能

  1. 难度级别:添加不同难度级别,如简单(1-50)、中等(1-100)、困难(1-200)

  2. 最高分记录:记录玩家的最少猜测次数,作为最高分

  3. 提示功能:当玩家猜测次数过多时,给出额外提示

  4. 图形界面:使用 Swing 或 JavaFX 实现图形界面

  5. 多人游戏:支持多个玩家轮流猜测,看谁用最少的次数猜对

总结

猜数字游戏是一个简单但有趣的 Java 控制台应用,它演示了如何使用随机数生成、用户输入、循环和条件判断等基本 Java 技术。通过这个项目,你可以学习:

  1. 随机数生成:如何使用 Random 类生成随机数
  2. 用户交互:如何使用 Scanner 读取用户输入
  3. 循环控制:如何使用 while 循环控制游戏流程
  4. 条件判断:如何使用 if-else 语句根据条件执行不同的代码
  5. 游戏逻辑:如何设计简单游戏的逻辑

这个项目是一个很好的 Java 入门练习,它涵盖了 Java 基础编程的许多重要概念,同时也是一个有趣的小游戏。

© 2026 编程马·菜鸟教程 版权所有