前言
灯谜是中秋节传统的活动之一,而现代化的方式则是将其制作成一个小游戏,让用户在游戏的过程中猜灯谜,互动体验更佳。在此,我就用自己擅长的开发语言,制作一款猜灯谜小游戏吧。
如下我就带着大家一起来制作一个属于自己的小游戏吧。
游戏简介
在本小游戏中,随机生成3个灯谜题目,玩家需要在规定时间内猜对所有灯谜才能通过游戏。每个灯谜有三次机会可以猜测,如果答案错误则机会会减少,如果全部机会用尽则游戏结束。
制作思路
- 准备灯谜题库。
- 程序随机选择3个灯谜,在屏幕上展示出来,同时也会有输入区域供用户输入答案。
- 用户输入答案并提交,程序进行判断,如果正确则提示用户并显示下一道灯谜;如果错误则机会减少1,如果机会大于0则继续猜测,如果机会用尽则游戏结束。
- 游戏结束后会显示答对的灯谜数量和用时。
实现步骤
这是一个在命令行下实现的猜灯谜游戏,游戏实现步骤如下:
- 定义灯谜题库、灯谜答案、每个灯谜可猜测次数、正确猜对的灯谜数量等常量。
- 实现游戏入口的欢迎信息的输出,告知游戏规则和注意事项。
- 通过随机数生成灯谜题目,一共生成3个灯谜。
- 输出灯谜题目和提示用户进行答案输入。
- 玩家输入答案,判断答案是否正确。
- 如果答案正确,则输出恭喜信息,正确猜对的灯谜数量+1,进入下一个灯谜的猜测。
- 如果答案错误,剩余可猜测次数-1,提示玩家剩余可猜测次数,并重新提示玩家进行答案输入。
- 如果可猜测次数用尽,输出正确答案,并结束当前灯谜的猜测。
- 如果玩家猜测的3个灯谜中有一个猜错或者时间超过1分钟,则游戏结束。
- 输出玩家游戏结果,包括正确猜对的灯谜数量和用时信息。
代码实现
游戏源码分享给小伙伴们,仅供参考:(版权所有,盗版必究)
java
public class LanternRiddleGame {
//灯谜题库
private static final String[] RIDDLES = {"燃烧的小太阳", "红花绿叶紫花白", "打开它,没人敢吃它", "小姑娘打扮俊,头上戴着双宝钗", "四十九个门(1---49),走进一个留作难"};
//灯谜答案
private static final String[] ANSWERS = {"蜡烛", "草莓", "月饼", "梳子", "口香糖"};
//玩家拥有的机会数
private static final int CHANCE = 3;
//正确猜对的灯谜数量
private static int count = 0;
//游戏启动入口
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long startTime = System.currentTimeMillis();
//游戏规则
printWelcomeMessage();
// 随机生成3个灯谜
for (int i = 0; i < 3; i++) {
int randomIndex = getRandomIndex(RIDDLES.length);
String riddle = RIDDLES[randomIndex];
String answer = ANSWERS[randomIndex];
printRiddleMessage(i + 1, riddle);
int remainingChance = CHANCE;
boolean isAnswerCorrect = false;
while (remainingChance > 0) {
String input = scanner.nextLine();
//判断玩家是否答对
if (isAnswerCorrect(input, answer)) {
printCorrectMessage();
isAnswerCorrect = true;
//猜对次数+1
count++;
break;
} else {
//玩家机会数-1
remainingChance--;
//如果机会用尽,则结束游戏。
if (remainingChance == 0) {
printAnswerMessage(answer);
} else {
printWrongMessage(remainingChance);
}
}
}
if (!isAnswerCorrect) {
break;
}
}
long endTime = System.currentTimeMillis();
printResultMessage(count, endTime - startTime);
}
private static void printWelcomeMessage() {
System.out.println("欢迎参加猜灯谜游戏!");
System.out.println("你需要在规定时间内猜对所有的灯谜才能通过游戏,每个灯谜有3次机会。");
}
private static int getRandomIndex(int length) {
Random random = new Random();
return random.nextInt(length);
}
private static void printRiddleMessage(int index, String riddle) {
System.out.println(String.format("第%d个灯谜:%s", index, riddle));
System.out.print("请输入答案:");
}
private static boolean isAnswerCorrect(String input, String answer) {
return input.equalsIgnoreCase(answer);
}
private static void printCorrectMessage() {
System.out.println("恭喜你,答对了!");
}
private static void printWrongMessage(int remainingChance) {
System.out.println(String.format("答案不对,你还有%d次机会!", remainingChance));
System.out.print("请再次输入答案:");
}
private static void printAnswerMessage(String answer) {
System.out.println(String.format("机会用尽,答案是:%s", answer));
}
//输出游戏结果
private static void printResultMessage(int count, long usedTime) {
if (count == 3 && usedTime <= 60 * 1000) {
System.out.println("恭喜你,通过了猜灯谜游戏!");
} else {
System.out.println("很遗憾,你没有通过猜灯谜游戏!");
}
System.out.println(String.format("用时:%d秒,共答对了%d个灯谜!", usedTime / 1000, count));
}
}
游戏源码解读
-
在程序中定义了常量RIDDLES、ANSWERS、CHANCE和count,分别表示灯谜题库、灯谜答案、每个灯谜可猜测次数和正确猜对的灯谜数量。
-
printWelcomeMessage()方法用于输出欢迎信息,告知游戏规则和注意事项。
-
在for循环中,通过getRandomIndex()方法随机生成一个灯谜题目,并输出题目和提示用户输入答案。
-
isAnswerCorrect()方法用于判断用户输入的答案是否正确。
-
如果猜对了灯谜,则输出恭喜信息,正确猜对的灯谜数量+1,进入下一个灯谜的猜测。
-
如果猜错了灯谜,剩余可猜测次数-1,并通过printWrongMessage()方法提示用户还剩余几次猜测机会,并让用户重新输入答案。
-
如果猜测次数用尽,通过printAnswerMessage()方法输出正确答案,并结束当前灯谜的猜测。
-
如果用户猜测的3个灯谜中有一个猜错或者时间超过1分钟,则游戏结束。
-
printResultMessage()方法用于输出游戏结果,包括正确猜对的灯谜数量和游戏时间。
-
程序中使用了Scanner和Random两个类,分别用于接收用户的输入和生成随机数。
功能演示
首次游戏启动会进行第一题的谜语解题界面:
回答对3次谜语则会提示:"恭喜你,通过了猜灯谜游戏",意味着你游戏挑战成功!
如果连续答错3次则直接游戏结束,被pass啦。
有没有心动的小伙伴想尝试一下的呀,可以体验下哇。
结语
作者我也就是跟个风,图个乐呵,便用擅长的方式制作了一个,如果对你们有一丝丝的帮助,还请给作者个大大的赞哦。
最后,作者提前祝愿诸位双节快乐!身体安康!!