Java 猜数字小游戏实现与解析

Java 猜数字小游戏实现与解析

今天我们来实现一个经典的猜数字小游戏,通过这个简单的程序,我们可以学习 Java 的基本语法、流程控制和用户交互等知识。这个游戏会随机生成一个 1-100 之间的数字,玩家需要在有限次数内猜出这个数字,程序会根据玩家的输入给出提示。

完整代码实现

下面是完整的 Java 代码,所有功能都封装在一个类中

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

public class GuessNumberGame {
    public static void main(String[] args) {
        // 游戏欢迎信息
        System.out.println("======================");
        System.out.println("    猜数字小游戏      ");
        System.out.println("======================");
        System.out.println("游戏规则:");
        System.out.println("1. 系统会随机生成1-100之间的整数");
        System.out.println("2. 你有10次机会猜出这个数字");
        System.out.println("3. 每次猜测后会提示你猜大了或猜小了");
        System.out.println("4. 猜对或用完次数游戏结束");
        System.out.println("======================\n");

        // 生成1-100之间的随机数
        Random random = new Random();
        int targetNumber = random.nextInt(100) + 1;
        
        // 初始化游戏参数
        int maxAttempts = 10;  // 最大猜测次数
        int attempts = 0;      // 当前已猜测次数
        boolean isGuessed = false;  // 是否猜对
        
        // 创建Scanner对象用于接收用户输入
        Scanner scanner = new Scanner(System.in);
        
        // 游戏主循环
        while (attempts < maxAttempts && !isGuessed) {
            // 显示剩余次数
            int remaining = maxAttempts - attempts;
            System.out.printf("请输入你猜测的数字(还剩%d次机会):", remaining);
            
            // 获取用户输入
            int guess;
            try {
                guess = scanner.nextInt();
                attempts++;  // 每输入一次,猜测次数加1
                
                // 判断猜测结果
                if (guess < 1 || guess > 100) {
                    System.out.println("请输入1-100之间的数字!");
                    attempts--;  // 无效输入不消耗次数
                } else if (guess < targetNumber) {
                    System.out.println("猜小了!再试试更大的数字。");
                } else if (guess > targetNumber) {
                    System.out.println("猜大了!再试试更小的数字。");
                } else {
                    isGuessed = true;
                    System.out.println("\n恭喜你,猜对了!");
                    System.out.printf("答案就是:%d,你用了%d次猜出正确答案!\n", targetNumber, attempts);
                }
            } catch (Exception e) {
                System.out.println("输入错误,请输入一个整数!");
                scanner.next();  // 清除错误输入
            }
        }
        
        // 游戏结束处理
        if (!isGuessed) {
            System.out.println("\n游戏结束!你已用完所有猜测次数。");
            System.out.printf("正确答案是:%d\n", targetNumber);
        }
        
        // 关闭资源
        scanner.close();
        System.out.println("\n感谢参与游戏,再见!");
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值