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

Java實(shí)現(xiàn)經(jīng)典角色扮演偵探游戲游戲的示例代碼

 更新時(shí)間:2022年02月18日 08:54:08   作者:小虛竹and掘金  
這篇文章主要介紹了如何利用Java語言自制一個(gè)偵探文字游戲—《角色扮演偵探》,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下

前言

游戲背景

百變山莊坐落于太平洋的一座小島上,山莊主人亦是小島的主人。這個(gè)神秘主人細(xì)致周到,邀請函里不僅附著往返港口的機(jī)票,港口的郵船也是通往小島的專線。 初登小島,恢宏大氣的山莊直入眼簾,通過門廊,金碧輝煌的大廳震人心魄. 受邀的偵探們陸續(xù)到齊,【侍者】彬彬有禮地站在一旁,他安排你們圍坐在一個(gè)奇特十邊形的桌子旁稍加等待?!緜商街讣狻炕貞浿约号R行前調(diào)查的各位名偵探的資料,除了那個(gè)神秘的【電話亭】偵探仍沒有現(xiàn)身,世界偵探排名前五的偵探們們剛好每個(gè)人占據(jù)了桌子的兩邊一角,就最近破獲的案情相互寒暄著。 "各位名偵探,歡迎你們來到百變山莊。"一個(gè)蒼老沉重的聲音響起,燈光驟滅。 乳白的墻面上同時(shí)投射出一個(gè)詭譎的背影。 "百變山莊的謎案,只有最優(yōu)秀的偵探才能破解,我不會(huì)讓你們失望。希望你們也能經(jīng)受住我的重重考驗(yàn)。謎案的具體信息,晚宴之后再向大家介紹。各位名偵探,祝你們用餐愉快!"畫面消失,燈光重新亮起,【侍者】推著餐車緩緩走來。 這個(gè)神秘的主人并沒有親臨現(xiàn)場。 【御姐偵探】對此十分不滿,她拉著【偵探手心】去往盥洗室,這兩位精致的美女偵探要在用餐前修補(bǔ)妝容。 【侍者】托起一盤酒,示意大家自便拿取。你打量著眼前的酒杯,山莊主人對藝術(shù)有著執(zhí)著的追求,連酒杯也都是十邊形的,說起不同尋常之處,這酒杯還有一個(gè)杯耳。 兩位美女偵探拿走酒杯剛一落座,德高望重的【安樂椅】偵探便舉杯祝詞,大家一飲而盡。少年偵探【紅領(lǐng)巾】試圖和【御姐】偵探交杯被拒絕,突然【偵探手心】皺著眉頭吐出來說酒味道不對,一旁的【侍者】趕緊遞過手帕擦拭。 "居然用這種廉價(jià)的餐酒來敷衍我們!真的是太…"【偵探手心】突然雙手扼住自己的脖子,倒在地上。"當(dāng)….當(dāng)…當(dāng)……大廳一角的古董鐘敲響了8下。 少年偵探【紅領(lǐng)巾】第一時(shí)間檢查了【偵探手心】的身體,向大家宣布了她的死亡。 挑戰(zhàn)已經(jīng)開始了嗎? 【偵探指尖】暗自思忖著。名偵探們慌亂一團(tuán),卻被【侍者】告知他們已經(jīng)不能離開這里了。 島上并沒有信號,而接送大家的游船也已經(jīng)駛出小島。真是個(gè)有趣的主人,【偵探指尖】不禁露出了微笑。

《角色扮演偵探》是自制的一款偵探文字游戲,用JAVA語言實(shí)現(xiàn)。

主要需求

用JAVA的基本語法和一些邏輯判斷,把劇情串起來,去吧,找出兇手。

主要設(shè)計(jì)

1、通過隨機(jī)數(shù),獲取玩家所對應(yīng)的身份

2、設(shè)計(jì)劇情背景,寫好劇本

3、玩家在控制臺(tái)輸入指定的命令,可以與劇情互動(dòng)??梢酝ㄟ^代碼實(shí)現(xiàn):

Scanner sc = new Scanner(System.in)
    //獲取從控制臺(tái)輸入的字符
    String input = sc.next();

4、通過邏輯判斷,就可以在不同的劇情流程中進(jìn)行流轉(zhuǎn)。

功能截圖

隨機(jī)獲取玩家身份

角色介紹

故事背景

你的任務(wù)

探索現(xiàn)場

所以,你找到兇手了嗎

代碼實(shí)現(xiàn)

游戲主界面

/*
這里是游戲執(zhí)行類 偵探
 */
public class MainGame extends Story {
    public static void main(String[] args) {
        //實(shí)現(xiàn)猜數(shù)字小游戲,通過隨機(jī)的x數(shù)以下的隨機(jī)數(shù),獲取你所對應(yīng)的身份
        Random r = new Random();
        int id = r.nextInt(5) + 1;

        inChoice(id);
        // switchChoice(id);

        sleep(1000);
        Scanner sc = new Scanner(System.in);
        System.out.println("接下來就深入了解一下其他人的身份吧!(請輸入 “yes” 或 “no”)");
        String input = sc.next();
        String yes = "yes";
        if (!yes.equals(input)) {
            System.out.println("你確定不想了解其他人的身份嗎?");
            System.out.println("這些線索能夠幫助你更快找到答案哦!");
            System.out.println("那么就進(jìn)入下一步吧!(請輸入“yes”)");
        } else {
            character();
            System.out.println("那么就進(jìn)入案情推理吧?。ㄕ堓斎搿皔es”)");
        }
        String input2 = sc.next();
        if (yes.equals(input2)) {
            Antecedent();
        }

        System.out.println(" ");
        misson();


        //開始游戲
        Game game = new Game();
        Scanner in = new Scanner(System.in);
        while (true) {
            String line = in.nextLine();
            String[] command = line.split(" ");
            if (command[0].equals("help")) {
                game.printHelp();
            } else if (command[0].equals("go")) {
                game.goRoom(command[1]);
            } else if (command[0].equals("bye")) {
                System.out.println("下面進(jìn)行結(jié)案投票環(huán)節(jié),請選擇你認(rèn)為的兇手:" +
                        "1.安樂椅 2.御姐偵探 3.紅領(lǐng)巾偵探 4.偵探手心 5.偵探指尖 6.侍者(輸入序號即可)");
                Scanner sca = new Scanner(System.in);
                int ordinal = sca.nextInt();
                Story.Truth(ordinal);
                System.out.println();
                System.out.println("命案解決了,你好棒喔~歡迎去玩下一部吶~");
                System.exit(0);
                break;
            }
        }

    }

    public static void misson() {
        System.out.println("你的任務(wù)\n" +
                "1.找出案件真兇;\n" +
                "2.推斷偵探指尖在世界偵探排行榜中是第幾名。");
    }

    public static void inChoice(int id) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入您猜測的數(shù)字(1-6之間的整數(shù),它將對應(yīng)你的身份):");
        while (true) {
            int input = sc.nextInt();
            if (input > id) {
                System.out.println("您猜的數(shù)據(jù)" + input + "大了");
            } else if (input < id) {
                System.out.println("您猜的數(shù)據(jù)" + input + "小了");
            } else {
                switchChoice(id);
                break;
            }
        }
    }

    public static void switchChoice(int id) {
        System.out.print("現(xiàn)在進(jìn)行...隨機(jī)分配,你的身份是:");
        sleep(1000);
        switch (id) {
            case 1:
                System.out.println("安樂椅偵探");
                break;
            case 2:
                System.out.println("御姐偵探");
                break;
            case 3:
                System.out.println("紅領(lǐng)巾偵探");
                break;
            case 4:
                System.out.println("電話亭偵探");
                break;
            case 5:
                System.out.println("偵探指尖");
                break;
            case 6:
                System.out.println("侍者");
                break;
        }
    }

    public static void sleep(int mills) {
        try {
            Thread.sleep(mills);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

主臥

public class BedRoom extends Room {

    public BedRoom() {
        super("指尖的房間");
    }

    @Override
    public void narration() {
        System.out.println("指尖的偵探筆記");
        System.out.println("【左利手】習(xí)慣用左手的人");
    }

}

初始化

public class Initialization {
    //初始化當(dāng)前房間
    Room currentRoom;

    //顯示歡迎信息
    public void welcome() {
        System.out.println("輸入“go+房間”去你想去的房間開始搜證,如go main_bed");
        System.out.println("如果想結(jié)束游戲進(jìn)行投票環(huán)節(jié)請輸入“bye”");
        System.out.println("如果需要幫助,請記住輸入 “help”");
    }


    //設(shè)定所有房間
    public void setRoom() {
        //初始化所有的房間
        Room bedroom = new BedRoom();
        Room lobby = new Lobby();
        Room secBed = new secBedroom();
        Room thBed = new thBedroom();


        //大廳初始化
        lobby.setExit("thr_bed", thBed);
        lobby.setExit("sec_bed", secBed);
        lobby.setExit("main_bed", bedroom);

        //指尖初始化
        bedroom.setExit("sec_bed", secBed);
        bedroom.setExit("thr_bed", thBed);

        //侍者初始化
        secBed.setExit("thr_bed", thBed);
        secBed.setExit("main_bed", bedroom);

        //御姐的初始化
        thBed.setExit("sec_bed", secBed);
        thBed.setExit("main_bed", bedroom);


        //設(shè)定起始房間
        currentRoom = lobby;
    }

    //獲得當(dāng)前房間
    public Room getCurrentRoom() {
        return currentRoom;
    }

}

大廳

public class Lobby extends Room {
    public Lobby() {
        super("大廳");
    }

    @Override
    public void narration() {
        System.out.println("這里有紅領(lǐng)巾偵探的杯子(1)和安樂椅偵探(2)的杯子,請輸入你要查看的杯子");
        Scanner sc = new Scanner(System.in);
        String cup = sc.next();
        String hCup = "1";//紅領(lǐng)巾偵探的杯子
        String ACup = "2";//安樂椅偵探的杯子
        if (cup.equals(hCup)) {
            System.out.println("你注意到“紅領(lǐng)巾”偵探在飲酒是的詭異舉動(dòng),決定去檢查它的杯子。他的杯沿一側(cè)檢測除了毒藥成分,所有人杯沿一側(cè)都檢查出了毒藥成分!\n" +
                    " 你記得“紅領(lǐng)巾”偵探和死者都是左利手!");
        } else if (cup.equals(ACup)) {
            System.out.println("你注意到“安樂椅”偵探領(lǐng)酒時(shí)異常的神情,決定去檢查它的杯子,這個(gè)杯子居然是十一邊形的!而其他人的杯子和桌子一樣是十邊形的。\n ");
        } else {
            System.out.println("你所輸入錯(cuò)誤,請輸入1或2");
        }

    }
}

總結(jié)

通過此次的《角色扮演偵探》游戲?qū)崿F(xiàn),讓我對JAVA的相關(guān)知識有了進(jìn)一步的了解,對java這門語言也有了比以前更深刻的認(rèn)識。

java的一些基本語法,比如數(shù)據(jù)類型、運(yùn)算符、程序流程控制和數(shù)組等,理解更加透徹。java最核心的核心就是面向?qū)ο笏枷耄瑢τ谶@一個(gè)概念,終于悟到了一些。

以上就是Java實(shí)現(xiàn)經(jīng)典角色扮演偵探游戲游戲的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Java角色扮演游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 理解zookeeper選舉機(jī)制

    理解zookeeper選舉機(jī)制

    本文主要介紹了zookeeper選舉機(jī)制的相關(guān)知識,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • 詳解在IDEA中使用MyBatis Generator逆向工程生成代碼

    詳解在IDEA中使用MyBatis Generator逆向工程生成代碼

    這篇文章主要介紹了詳解在IDEA中使用MyBatis Generator逆向工程生成代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Mybatis實(shí)現(xiàn)SQL存儲(chǔ)流程詳解

    Mybatis實(shí)現(xiàn)SQL存儲(chǔ)流程詳解

    MyBatis作為一款優(yōu)秀的持久層框架,它支持自定義SQL、存儲(chǔ)過程以及高級映射。它免除了幾乎所有的JDBC代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作
    2023-03-03
  • Spring集成Web環(huán)境與SpringMVC組件的擴(kuò)展使用詳解

    Spring集成Web環(huán)境與SpringMVC組件的擴(kuò)展使用詳解

    這篇文章主要介紹了Spring集成Web環(huán)境與SpringMVC組件,它是一個(gè)MVC架構(gòu),用來簡化基于MVC架構(gòu)的Web應(yīng)用開發(fā)。SpringMVC最重要的就是五大組件
    2022-08-08
  • 23種設(shè)計(jì)模式(2) java工廠模式

    23種設(shè)計(jì)模式(2) java工廠模式

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java工廠模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 淺談Ribbon、Feign和OpenFeign的區(qū)別

    淺談Ribbon、Feign和OpenFeign的區(qū)別

    這篇文章主要介紹了淺談Ribbon、Feign和OpenFeign的區(qū)別。具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python安裝Jupyter Notebook配置使用教程詳解

    Python安裝Jupyter Notebook配置使用教程詳解

    這篇文章主要介紹了Python安裝Jupyter Notebook配置使用教程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java模擬實(shí)現(xiàn)機(jī)場過安檢處理流程

    Java模擬實(shí)現(xiàn)機(jī)場過安檢處理流程

    這篇文章主要為大家詳細(xì)介紹了用Java模擬實(shí)現(xiàn)機(jī)場安全檢查流程的案例,涉及線程的相關(guān)知識,由子線程不斷的檢查通過旅客,感興趣的小伙伴們可以參考一下
    2022-04-04
  • java 讀取本地文件實(shí)例詳解

    java 讀取本地文件實(shí)例詳解

    這篇文章主要介紹了java 讀取本地文件實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Spring簡明分析Bean作用域

    Spring簡明分析Bean作用域

    scope用來聲明容器中的對象所應(yīng)該處的限定場景或者說該對象的存活時(shí)間,即容器在對象進(jìn)入其 相應(yīng)的scope之前,生成并裝配這些對象,在該對象不再處于這些scope的限定之后,容器通常會(huì)銷毀這些對象,這篇文章主要介紹了Spring中的Bean作用域,需要的朋友可以參考下
    2022-07-07

最新評論

孟村| 拉孜县| 宽甸| 宁阳县| 石泉县| 四会市| 嘉义市| 天长市| 山西省| 吴堡县| 将乐县| 德清县| 醴陵市| 宣武区| 龙州县| 双柏县| 揭西县| 长春市| 观塘区| 新宁县| 波密县| 新龙县| 密云县| 韶山市| 安宁市| 文化| 泸溪县| 浙江省| 越西县| 凉城县| 泰顺县| 玉门市| 清流县| 石狮市| 吉安市| 古田县| 彭泽县| 徐汇区| 乐平市| 二连浩特市| 冕宁县|