Java實(shí)現(xiàn)簡易版猜燈謎游戲的示例代碼
前言
燈謎是中秋節(jié)傳統(tǒng)的活動(dòng)之一,而現(xiàn)代化的方式則是將其制作成一個(gè)小游戲,讓用戶在游戲的過程中猜燈謎,互動(dòng)體驗(yàn)更佳。在此,我就用自己擅長的開發(fā)語言,制作一款猜燈謎小游戲吧。
如下我就帶著大家一起來制作一個(gè)屬于自己的小游戲吧。
游戲簡介
在本小游戲中,隨機(jī)生成3個(gè)燈謎題目,玩家需要在規(guī)定時(shí)間內(nèi)猜對所有燈謎才能通過游戲。每個(gè)燈謎有三次機(jī)會(huì)可以猜測,如果答案錯(cuò)誤則機(jī)會(huì)會(huì)減少,如果全部機(jī)會(huì)用盡則游戲結(jié)束。
制作思路
- 準(zhǔn)備燈謎題庫。
- 程序隨機(jī)選擇3個(gè)燈謎,在屏幕上展示出來,同時(shí)也會(huì)有輸入?yún)^(qū)域供用戶輸入答案。
- 用戶輸入答案并提交,程序進(jìn)行判斷,如果正確則提示用戶并顯示下一道燈謎;如果錯(cuò)誤則機(jī)會(huì)減少1,如果機(jī)會(huì)大于0則繼續(xù)猜測,如果機(jī)會(huì)用盡則游戲結(jié)束。
- 游戲結(jié)束后會(huì)顯示答對的燈謎數(shù)量和用時(shí)。
實(shí)現(xiàn)步驟
這是一個(gè)在命令行下實(shí)現(xiàn)的猜燈謎游戲,游戲?qū)崿F(xiàn)步驟如下:
- 定義燈謎題庫、燈謎答案、每個(gè)燈謎可猜測次數(shù)、正確猜對的燈謎數(shù)量等常量。
- 實(shí)現(xiàn)游戲入口的歡迎信息的輸出,告知游戲規(guī)則和注意事項(xiàng)。
- 通過隨機(jī)數(shù)生成燈謎題目,一共生成3個(gè)燈謎。
- 輸出燈謎題目和提示用戶進(jìn)行答案輸入。
- 玩家輸入答案,判斷答案是否正確。
- 如果答案正確,則輸出恭喜信息,正確猜對的燈謎數(shù)量+1,進(jìn)入下一個(gè)燈謎的猜測。
- 如果答案錯(cuò)誤,剩余可猜測次數(shù)-1,提示玩家剩余可猜測次數(shù),并重新提示玩家進(jìn)行答案輸入。
- 如果可猜測次數(shù)用盡,輸出正確答案,并結(jié)束當(dāng)前燈謎的猜測。
- 如果玩家猜測的3個(gè)燈謎中有一個(gè)猜錯(cuò)或者時(shí)間超過1分鐘,則游戲結(jié)束。
- 輸出玩家游戲結(jié)果,包括正確猜對的燈謎數(shù)量和用時(shí)信息。
代碼實(shí)現(xiàn)
游戲源碼分享給小伙伴們,僅供參考:(版權(quán)所有,盜版必究)
public class LanternRiddleGame { //燈謎題庫 private static final String[] RIDDLES = {"燃燒的小太陽", "紅花綠葉紫花白", "打開它,沒人敢吃它", "小姑娘打扮俊,頭上戴著雙寶釵", "四十九個(gè)門(1—49),走進(jìn)一個(gè)留作難"}; //燈謎答案 private static final String[] ANSWERS = {"蠟燭", "草莓", "月餅", "梳子", "口香糖"}; //玩家擁有的機(jī)會(huì)數(shù) private static final int CHANCE = 3; //正確猜對的燈謎數(shù)量 private static int count = 0; //游戲啟動(dòng)入口 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long startTime = System.currentTimeMillis(); //游戲規(guī)則 printWelcomeMessage(); // 隨機(jī)生成3個(gè)燈謎 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; //猜對次數(shù)+1 count++; break; } else { //玩家機(jī)會(huì)數(shù)-1 remainingChance--; //如果機(jī)會(huì)用盡,則結(jié)束游戲。 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("你需要在規(guī)定時(shí)間內(nèi)猜對所有的燈謎才能通過游戲,每個(gè)燈謎有3次機(jī)會(huì)。"); } 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個(gè)燈謎:%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次機(jī)會(huì)!", remainingChance)); System.out.print("請?jiān)俅屋斎氪鸢福?); } private static void printAnswerMessage(String answer) { System.out.println(String.format("機(jī)會(huì)用盡,答案是:%s", answer)); } //輸出游戲結(jié)果 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("用時(shí):%d秒,共答對了%d個(gè)燈謎!", usedTime / 1000, count)); } }
游戲源碼解讀
在程序中定義了常量RIDDLES、ANSWERS、CHANCE和count,分別表示燈謎題庫、燈謎答案、每個(gè)燈謎可猜測次數(shù)和正確猜對的燈謎數(shù)量。
printWelcomeMessage()方法用于輸出歡迎信息,告知游戲規(guī)則和注意事項(xiàng)。
在for循環(huán)中,通過getRandomIndex()方法隨機(jī)生成一個(gè)燈謎題目,并輸出題目和提示用戶輸入答案。
isAnswerCorrect()方法用于判斷用戶輸入的答案是否正確。
如果猜對了燈謎,則輸出恭喜信息,正確猜對的燈謎數(shù)量+1,進(jìn)入下一個(gè)燈謎的猜測。
如果猜錯(cuò)了燈謎,剩余可猜測次數(shù)-1,并通過printWrongMessage()方法提示用戶還剩余幾次猜測機(jī)會(huì),并讓用戶重新輸入答案。
如果猜測次數(shù)用盡,通過printAnswerMessage()方法輸出正確答案,并結(jié)束當(dāng)前燈謎的猜測。
如果用戶猜測的3個(gè)燈謎中有一個(gè)猜錯(cuò)或者時(shí)間超過1分鐘,則游戲結(jié)束。
printResultMessage()方法用于輸出游戲結(jié)果,包括正確猜對的燈謎數(shù)量和游戲時(shí)間。
程序中使用了Scanner和Random兩個(gè)類,分別用于接收用戶的輸入和生成隨機(jī)數(shù)。
功能演示
首次游戲啟動(dòng)會(huì)進(jìn)行第一題的謎語解題界面:
回答對3次謎語則會(huì)提示:"恭喜你,通過了猜燈謎游戲",意味著你游戲挑戰(zhàn)成功!
如果連續(xù)答錯(cuò)3次則直接游戲結(jié)束,被pass啦。
有沒有心動(dòng)的小伙伴想嘗試一下的呀,可以體驗(yàn)下哇。
以上就是Java實(shí)現(xiàn)簡易版猜燈謎游戲的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Java猜燈謎游戲的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于@Valid和@Validated驗(yàn)證List集合的踩坑記錄
這篇文章主要介紹了基于@Valid和@Validated驗(yàn)證List集合的踩坑記錄,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07java調(diào)用oracle分頁存儲(chǔ)過程示例
這篇文章主要介紹了java調(diào)用oracle分頁存儲(chǔ)過程,需要的朋友可以參考下2014-03-03CMD運(yùn)行Intellij Idea編譯后的class文件操作
這篇文章主要介紹了CMD運(yùn)行Intellij Idea編譯后的class文件操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Mybatis動(dòng)態(tài)sql中@Param使用詳解
這篇文章主要介紹了Mybatis動(dòng)態(tài)sql中@Param使用詳解,當(dāng)方法的參數(shù)為非自定義pojo類型,且使用了動(dòng)態(tài)sql,那么就需要在參數(shù)前加上@Param注解,需要的朋友可以參考下2023-10-10Unity2019-2020 個(gè)人版官方免費(fèi)激活詳細(xì)方法
這篇文章主要介紹了Unity2019-2020 個(gè)人版官方免費(fèi)激活詳細(xì)方法,激活方法分位兩種一種是激活新許可證,一種是手動(dòng)激活,感興趣的朋友跟隨小編一起看看吧2021-04-04