溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲

發(fā)布時間:2022-02-18 10:45:05 來源:億速云 閱讀:150 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲”吧!

    前言

    游戲背景

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

    主要需求

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

    主要設(shè)計

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

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

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

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

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

    功能截圖

    隨機獲取玩家身份

    怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲

    角色介紹

    怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲

    故事背景

    怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲

    你的任務

    怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲

    探索現(xiàn)場

    怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲

    所以,你找到兇手了嗎

    代碼實現(xiàn)

    游戲主界面

    /*
    這里是游戲執(zhí)行類 偵探
     */
    public class MainGame extends Story {
        public static void main(String[] args) {
            //實現(xiàn)猜數(shù)字小游戲,通過隨機的x數(shù)以下的隨機數(shù),獲取你所對應的身份
            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("那么就進入下一步吧?。ㄕ堓斎搿皔es”)");
            } else {
                character();
                System.out.println("那么就進入案情推理吧?。ㄕ堓斎搿皔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("下面進行結(jié)案投票環(huán)節(jié),請選擇你認為的兇手:" +
                            "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("你的任務\n" +
                    "1.找出案件真兇;\n" +
                    "2.推斷偵探指尖在世界偵探排行榜中是第幾名。");
        }
    
        public static void inChoice(int id) {
            Scanner sc = new Scanner(System.in);
            System.out.println("請輸入您猜測的數(shù)字(1-6之間的整數(shù),它將對應你的身份):");
            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)在進行...隨機分配,你的身份是:");
            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("【左利手】習慣用左手的人");
        }
    
    }

    初始化

    public class Initialization {
        //初始化當前房間
        Room currentRoom;
    
        //顯示歡迎信息
        public void welcome() {
            System.out.println("輸入“go+房間”去你想去的房間開始搜證,如go main_bed");
            System.out.println("如果想結(jié)束游戲進行投票環(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;
        }
    
        //獲得當前房間
        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)巾”偵探在飲酒是的詭異舉動,決定去檢查它的杯子。他的杯沿一側(cè)檢測除了毒藥成分,所有人杯沿一側(cè)都檢查出了毒藥成分!\n" +
                        " 你記得“紅領(lǐng)巾”偵探和死者都是左利手!");
            } else if (cup.equals(ACup)) {
                System.out.println("你注意到“安樂椅”偵探領(lǐng)酒時異常的神情,決定去檢查它的杯子,這個杯子居然是十一邊形的!而其他人的杯子和桌子一樣是十邊形的。\n ");
            } else {
                System.out.println("你所輸入錯誤,請輸入1或2");
            }
    
        }
    }

    到此,相信大家對“怎么用Java代碼實現(xiàn)經(jīng)典角色扮演偵探游戲游戲”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI