题目名称 | 实验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次。然后结束程序运行。 下面是一个运行示例: 提交要求:包含源程序文件的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
}
}