scau:面向对象java实验作业1-2 猜数字游戏

题目名称实验1-2 猜数字游戏
题目关键字数据类型 基本输入输出 控制语句 方法
题目录入时间2022/10/10 11:01:37
题目内容

使用Java程序,项目名称:GuessNumberGame,类根据自己需要定义。

程序开始运行后,允许玩家进行多次猜数字的游戏。

每次猜数字的过程如下:

1. 程序随机产生一个0-9之间的整数。

2. 要求玩家从键盘输入自己猜的数字。

3. 程序检查玩家输入的数字,并根据检查结果进行如下提示:

l  如果用户猜对了,则提示:恭喜你,猜对了。

l  如果用户猜错了,则提示:你猜的数字太(大或小)了。

4. 一次游戏结束条件有2种情况:

l  玩家连续3次没有猜对给定数字,则提示:游戏失败。

l  玩家在3次机会之内猜对了给定的数字,则提示:游戏成功。

5. 每次游戏结束时,询问用户是否继续新的游戏。

l  如果用户选择继续,则开始新一次游戏;

l  否则输出:你共进行了XXX次游戏,成功XXX次,失败XXX次。然后结束程序运行。

下面是一个运行示例:

3e7a7a67b734675745d01929b3829b1e.jpeg

提交要求:包含源程序文件的JAR。

package practice;
import java.util.Scanner;
import java.util.Random;

public class Cai_shuzi {
    private static int time = 0;
    private static int correctGuesses = 0;
    private static int wrongGuesses = 0;
    private static Scanner scanner = new Scanner(System.in);  // 移出循环外

    public static void main(String[] args) {
        startGame();
    }

    // 启动游戏
    public static void startGame() {
        while (true) {
            time++;
            System.out.println("第" + time + "次游戏,程序生成了一个[0,9]之间的数字.");
            playRound(3);

            System.out.print("你还要继续游戏吗?(Y继续/N退出):");
            char in = scanner.next().charAt(0);
            if (in != 'Y' && in != 'y') {
                endGame();
                break;
            }
        }
    }

    // 进行单轮游戏
    public static void playRound(int chances) {
        Random random = new Random();
        int answer = random.nextInt(10);
        boolean guessedCorrectly = false;

        while (chances > 0) {
            System.out.print("你还有" + chances + "次机会,输入你猜的数字:");
            int input = scanner.nextInt();

            if (input == answer) {
                System.out.println("恭喜你,猜对了!");
                guessedCorrectly = true;
                correctGuesses++;
                break;
            } else if (input < answer) {
                System.out.println("你猜的数字太小了!");
            } else {
                System.out.println("你猜的数字太大了!");
            }
            chances--;
        }

        if (!guessedCorrectly) {
            wrongGuesses++;
            System.out.println("本次游戏失败!正确数字是:" + answer);
        }
    }

    // 游戏结束时的统计
    public static void endGame() {
        System.out.println("你共进行了" + time + "次游戏,成功 " + correctGuesses + " 次,失败 " + wrongGuesses + " 次.");
        scanner.close();  // 结束时再关闭 Scanner
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zero_019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值