欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • 基于@Valid和@Validated驗證List集合的踩坑記錄

    基于@Valid和@Validated驗證List集合的踩坑記錄

    這篇文章主要介紹了基于@Valid和@Validated驗證List集合的踩坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java設(shè)計模式之觀察者模式解析

    Java設(shè)計模式之觀察者模式解析

    這篇文章主要介紹了Java設(shè)計模式之觀察者模式解析,觀察者模式,又被稱為發(fā)布/訂閱模式,它定義了一種一對多的依賴關(guān)系,讓多個觀察者對象同時監(jiān)聽某一個主題對象,這個主題對象在狀態(tài)變化時,會通知所有的觀察者對象,使他們能夠自動更新自己,需要的朋友可以參考下
    2023-09-09
  • java調(diào)用oracle分頁存儲過程示例

    java調(diào)用oracle分頁存儲過程示例

    這篇文章主要介紹了java調(diào)用oracle分頁存儲過程,需要的朋友可以參考下
    2014-03-03
  • java 獲取路徑的各種方法(總結(jié))

    java 獲取路徑的各種方法(總結(jié))

    下面小編就為大家?guī)硪黄猨ava 獲取路徑的各種方法(總結(jié))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • CMD運行Intellij Idea編譯后的class文件操作

    CMD運行Intellij Idea編譯后的class文件操作

    這篇文章主要介紹了CMD運行Intellij Idea編譯后的class文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Mybatis動態(tài)sql中@Param使用詳解

    Mybatis動態(tài)sql中@Param使用詳解

    這篇文章主要介紹了Mybatis動態(tài)sql中@Param使用詳解,當(dāng)方法的參數(shù)為非自定義pojo類型,且使用了動態(tài)sql,那么就需要在參數(shù)前加上@Param注解,需要的朋友可以參考下
    2023-10-10
  • Java設(shè)計模式之工廠模式

    Java設(shè)計模式之工廠模式

    這篇文章主要為大家詳細(xì)介紹了Java設(shè)計模式之工廠模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Unity2019-2020 個人版官方免費激活詳細(xì)方法

    Unity2019-2020 個人版官方免費激活詳細(xì)方法

    這篇文章主要介紹了Unity2019-2020 個人版官方免費激活詳細(xì)方法,激活方法分位兩種一種是激活新許可證,一種是手動激活,感興趣的朋友跟隨小編一起看看吧
    2021-04-04
  • Tomcat版本與Java版本的關(guān)系及說明

    Tomcat版本與Java版本的關(guān)系及說明

    這篇文章主要介紹了Tomcat版本與Java版本的關(guān)系及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 快速上手Java單元測試框架JUnit5

    快速上手Java單元測試框架JUnit5

    今天給大家?guī)淼氖顷P(guān)于Java單元測試的相關(guān)知識,文章圍繞著Java單元測試框架JUnit5展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評論