最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)簡易版猜燈謎游戲的示例代碼

 更新時間:2023年09月14日 10:36:05   作者:我崽不熬夜  
燈謎是中秋節(jié)傳統(tǒng)的活動之一,而現(xiàn)代化的方式則是將其制作成一個小游戲,讓用戶在游戲的過程中猜燈謎,互動體驗更佳,所以本文小編就用Java制作一款猜燈謎小游戲吧

前言

燈謎是中秋節(jié)傳統(tǒng)的活動之一,而現(xiàn)代化的方式則是將其制作成一個小游戲,讓用戶在游戲的過程中猜燈謎,互動體驗更佳。在此,我就用自己擅長的開發(fā)語言,制作一款猜燈謎小游戲吧。

如下我就帶著大家一起來制作一個屬于自己的小游戲吧。

游戲簡介

在本小游戲中,隨機生成3個燈謎題目,玩家需要在規(guī)定時間內(nèi)猜對所有燈謎才能通過游戲。每個燈謎有三次機會可以猜測,如果答案錯誤則機會會減少,如果全部機會用盡則游戲結(jié)束。

制作思路

  • 準(zhǔn)備燈謎題庫。
  • 程序隨機選擇3個燈謎,在屏幕上展示出來,同時也會有輸入?yún)^(qū)域供用戶輸入答案。
  • 用戶輸入答案并提交,程序進行判斷,如果正確則提示用戶并顯示下一道燈謎;如果錯誤則機會減少1,如果機會大于0則繼續(xù)猜測,如果機會用盡則游戲結(jié)束。
  • 游戲結(jié)束后會顯示答對的燈謎數(shù)量和用時。

實現(xiàn)步驟

這是一個在命令行下實現(xiàn)的猜燈謎游戲,游戲?qū)崿F(xiàn)步驟如下:

  • 定義燈謎題庫、燈謎答案、每個燈謎可猜測次數(shù)、正確猜對的燈謎數(shù)量等常量。
  • 實現(xiàn)游戲入口的歡迎信息的輸出,告知游戲規(guī)則和注意事項。
  • 通過隨機數(shù)生成燈謎題目,一共生成3個燈謎。
  • 輸出燈謎題目和提示用戶進行答案輸入。
  • 玩家輸入答案,判斷答案是否正確。
  • 如果答案正確,則輸出恭喜信息,正確猜對的燈謎數(shù)量+1,進入下一個燈謎的猜測。
  • 如果答案錯誤,剩余可猜測次數(shù)-1,提示玩家剩余可猜測次數(shù),并重新提示玩家進行答案輸入。
  • 如果可猜測次數(shù)用盡,輸出正確答案,并結(jié)束當(dāng)前燈謎的猜測。
  • 如果玩家猜測的3個燈謎中有一個猜錯或者時間超過1分鐘,則游戲結(jié)束。
  • 輸出玩家游戲結(jié)果,包括正確猜對的燈謎數(shù)量和用時信息。

代碼實現(xiàn)

游戲源碼分享給小伙伴們,僅供參考:(版權(quán)所有,盜版必究)

public class LanternRiddleGame {
    //燈謎題庫
    private static final String[] RIDDLES = {"燃燒的小太陽", "紅花綠葉紫花白", "打開它,沒人敢吃它", "小姑娘打扮俊,頭上戴著雙寶釵", "四十九個門(1—49),走進一個留作難"};
    //燈謎答案
    private static final String[] ANSWERS = {"蠟燭", "草莓", "月餅", "梳子", "口香糖"};
    //玩家擁有的機會數(shù)
    private static final int CHANCE = 3;
    //正確猜對的燈謎數(shù)量
    private static int count = 0;
    //游戲啟動入口
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long startTime = System.currentTimeMillis();
        //游戲規(guī)則
        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;
                    //猜對次數(shù)+1
                    count++;
                    break;
                } else {
                    //玩家機會數(shù)-1
                    remainingChance--;
                    //如果機會用盡,則結(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ī)定時間內(nèi)猜對所有的燈謎才能通過游戲,每個燈謎有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));
    }
    //輸出游戲結(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("用時:%d秒,共答對了%d個燈謎!", usedTime / 1000, count));
    }
}

游戲源碼解讀

在程序中定義了常量RIDDLES、ANSWERS、CHANCE和count,分別表示燈謎題庫、燈謎答案、每個燈謎可猜測次數(shù)和正確猜對的燈謎數(shù)量。

printWelcomeMessage()方法用于輸出歡迎信息,告知游戲規(guī)則和注意事項。

在for循環(huán)中,通過getRandomIndex()方法隨機生成一個燈謎題目,并輸出題目和提示用戶輸入答案。

isAnswerCorrect()方法用于判斷用戶輸入的答案是否正確。

如果猜對了燈謎,則輸出恭喜信息,正確猜對的燈謎數(shù)量+1,進入下一個燈謎的猜測。

如果猜錯了燈謎,剩余可猜測次數(shù)-1,并通過printWrongMessage()方法提示用戶還剩余幾次猜測機會,并讓用戶重新輸入答案。

如果猜測次數(shù)用盡,通過printAnswerMessage()方法輸出正確答案,并結(jié)束當(dāng)前燈謎的猜測。

如果用戶猜測的3個燈謎中有一個猜錯或者時間超過1分鐘,則游戲結(jié)束。

printResultMessage()方法用于輸出游戲結(jié)果,包括正確猜對的燈謎數(shù)量和游戲時間。

程序中使用了Scanner和Random兩個類,分別用于接收用戶的輸入和生成隨機數(shù)。

功能演示

首次游戲啟動會進行第一題的謎語解題界面:

回答對3次謎語則會提示:"恭喜你,通過了猜燈謎游戲",意味著你游戲挑戰(zhàn)成功!

如果連續(xù)答錯3次則直接游戲結(jié)束,被pass啦。

有沒有心動的小伙伴想嘗試一下的呀,可以體驗下哇。

以上就是Java實現(xiàn)簡易版猜燈謎游戲的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Java猜燈謎游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mybatis如何按順序查詢出對應(yīng)的數(shù)據(jù)字段

    Mybatis如何按順序查詢出對應(yīng)的數(shù)據(jù)字段

    這篇文章主要介紹了Mybatis如何按順序查詢出對應(yīng)的數(shù)據(jù)字段,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • springMVC常見視圖組件與RESTFul編程風(fēng)格詳解

    springMVC常見視圖組件與RESTFul編程風(fēng)格詳解

    本文給大家介紹springMVC常見視圖組件與RESTFul編程風(fēng)格,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-02-02
  • SpringMVC框架實現(xiàn)Handler處理器的三種寫法

    SpringMVC框架實現(xiàn)Handler處理器的三種寫法

    這篇文章主要介紹了SpringMVC框架實現(xiàn)Handler處理器的三種寫法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java實現(xiàn)的獲取和判斷文件頭信息工具類用法示例

    Java實現(xiàn)的獲取和判斷文件頭信息工具類用法示例

    這篇文章主要介紹了Java實現(xiàn)的獲取和判斷文件頭信息工具類,結(jié)合實例形式分析了Java針對文件讀取及頭信息判斷相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • Java8處理List的雙層循環(huán)問題

    Java8處理List的雙層循環(huán)問題

    這篇文章主要介紹了Java8處理List的雙層循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java基于ProcessBuilder+FFmpeg實現(xiàn)MP4轉(zhuǎn)WAV音頻轉(zhuǎn)碼方案

    Java基于ProcessBuilder+FFmpeg實現(xiàn)MP4轉(zhuǎn)WAV音頻轉(zhuǎn)碼方案

    在音視頻處理場景中,將MP4視頻文件中的音頻流提取為WAV格式是一個常見需求,本文介紹一種基于Java ProcessBuilder + FFmpeg的高效解決方案,通過調(diào)用命令行工具FFmpeg完成轉(zhuǎn)換,實現(xiàn)跨平臺、高質(zhì)量的音頻提取,需要的朋友可以參考下
    2026-03-03
  • Springmvc工程跳轉(zhuǎn)controller無效的解決

    Springmvc工程跳轉(zhuǎn)controller無效的解決

    這篇文章主要介紹了Springmvc工程跳轉(zhuǎn)controller無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 淺談Java后臺對JSON格式的處理操作

    淺談Java后臺對JSON格式的處理操作

    下面小編就為大家?guī)硪黄獪\談Java后臺對JSON格式的處理操作。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實踐

    利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實踐

    這篇文章主要給大家介紹了關(guān)于利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實踐,Mybatis-Plus可以很方便地處理JSON字段,在實體類中可以使用@JSONField注解來標(biāo)記JSON字段,需要的朋友可以參考下
    2024-07-07
  • Java多版本環(huán)境管理工具選型與命令速查方式

    Java多版本環(huán)境管理工具選型與命令速查方式

    本文介紹了多JDK并存時的安裝來源、版本切換、JAVA_HOME與構(gòu)建工具對齊方式,以及在Linux、macOS、Windows下的常見選型,介紹了SDKMAN、jEnv、Jabba、Homebrew等工具的使用方法及適用場景,并提供了常見問題及處理方式
    2026-04-04

最新評論

新余市| 潼关县| 长岭县| 江门市| 新民市| 沙洋县| 余江县| 鹰潭市| 蛟河市| 富锦市| 广灵县| 韩城市| 兴宁市| 周宁县| 东港市| 精河县| 陕西省| 左贡县| 武鸣县| 长海县| 海南省| 康保县| 松滋市| 甘南县| 鹤山市| 孟连| 赫章县| 台安县| 邵东县| 香港 | 望都县| 天峻县| 敦化市| 五华县| 林西县| 宜阳县| 清新县| 纳雍县| 东兴市| 灵川县| 青冈县|