猜数字游戏有三变(Java篇)
猜数字游戏是一种经典的游戏,简单地说,就是让玩家在一定的范围内猜测一个随机生成的数字。在这个游戏中,我们可以通过不同的变体来增加趣味性和挑战性。本文将展示如何在 Java 中实现这个游戏的三种变体:基础版、提示版和倒计时版。
一、基础版
基础版的猜数字游戏非常简单:程序随机生成一个1到100之间的数字,用户通过输入数字进行猜测,程序会告诉用户猜测的结果是“猜小了”、“猜大了”还是“猜对了”。
代码示例
import java.util.Random;
import java.util.Scanner;
public class GuessNumberBasic {
public static void main(String[] args) {
Random random = new Random();
int targetNumber = random.nextInt(100) + 1; // 生成1到100之间的随机数
Scanner scanner = new Scanner(System.in);
int userGuess = 0;
System.out.println("欢迎来到猜数字游戏!\n请猜一个1到100之间的数字:");
while (userGuess != targetNumber) {
userGuess = scanner.nextInt();
if (userGuess < targetNumber) {
System.out.println("猜小了,请再试一次:");
} else if (userGuess > targetNumber) {
System.out.println("猜大了,请再试一次:");
} else {
System.out.println("恭喜你,猜对了!");
}
}
scanner.close();
}
}
二、提示版
在提示版中,我们增加了一些额外的提示功能,例如在用户猜测的过程中,如果猜测次数超过一定的次数,程序将会给出一个范围提示,帮助用户更好地进行猜测。
代码示例
import java.util.Random;
import java.util.Scanner;
public class GuessNumberWithHints {
public static void main(String[] args) {
Random random = new Random();
int targetNumber = random.nextInt(100) + 1;
Scanner scanner = new Scanner(System.in);
int userGuess = 0;
int attempts = 0;
System.out.println("欢迎来到提示版猜数字游戏!\n请猜一个1到100之间的数字:");
while (userGuess != targetNumber) {
userGuess = scanner.nextInt();
attempts++;
if (userGuess < targetNumber) {
System.out.println("猜小了,请再试一次:");
} else if (userGuess > targetNumber) {
System.out.println("猜大了,请再试一次:");
} else {
System.out.println("恭喜你,猜对了!总共猜测次数:" + attempts);
}
// 每猜五次给出一次范围提示
if (attempts % 5 == 0) {
if (targetNumber % 2 == 0) {
System.out.println("提示:这个数字是偶数。");
} else {
System.out.println("提示:这个数字是奇数。");
}
}
}
scanner.close();
}
}
三、倒计时版
倒计时版则增加了时间限制,用户需要在规定的时间内猜中数字。若超时,游戏结束。
代码示例
import java.util.Random;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
public class GuessNumberWithTimer {
private static boolean timeUp = false;
public static void main(String[] args) {
Random random = new Random();
int targetNumber = random.nextInt(100) + 1;
Scanner scanner = new Scanner(System.in);
int userGuess = 0;
Timer timer = new Timer();
System.out.println("欢迎来到倒计时版猜数字游戏!你有15秒的时间猜一个1到100之间的数字。");
// 设置15秒的倒计时
timer.schedule(new TimerTask() {
@Override
public void run() {
timeUp = true;
System.out.println("时间到!游戏结束。");
scanner.close();
System.exit(0);
}
}, 15000);
while (!timeUp && userGuess != targetNumber) {
userGuess = scanner.nextInt();
if (userGuess < targetNumber) {
System.out.println("猜小了,请再试一次:");
} else if (userGuess > targetNumber) {
System.out.println("猜大了,请再试一次:");
} else {
System.out.println("恭喜你,猜对了!");
timer.cancel(); // 取消计时器
}
}
scanner.close();
}
}
总结
通过这三种变体的实现,我们可以看到, Java 提供了丰富的工具来开发小型游戏。基础版简单易懂,提示版增加了趣味性,而倒计时版则提升了游戏的紧张感。希望这些实现能够激发你的创造力,设计出更多有趣的变体。