我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java实现经典角色扮演侦探游戏游戏的示例代码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java实现经典角色扮演侦探游戏游戏的示例代码

前言

游戏背景

百变山庄坐落于太平洋的一座小岛上,山庄主人亦是小岛的主人。这个神秘主人细致周到,邀请函里不仅附着往返港口的机票,港口的邮船也是通往小岛的专线。 初登小岛,恢宏大气的山庄直入眼帘,通过门廊,金碧辉煌的大厅震人心魄. 受邀的侦探们陆续到齐,【侍者】彬彬有礼地站在一旁,他安排你们围坐在一个奇特十边形的桌子旁稍加等待。【侦探指尖】回忆着自己临行前调查的各位名侦探的资料,除了那个神秘的【电话亭】侦探仍没有现身,世界侦探排名前五的侦探们们刚好每个人占据了桌子的两边一角,就最近破获的案情相互寒暄着。 "各位名侦探,欢迎你们来到百变山庄。"一个苍老沉重的声音响起,灯光骤灭。 乳白的墙面上同时投射出一个诡谲的背影。 "百变山庄的谜案,只有最优秀的侦探才能破解,我不会让你们失望。希望你们也能经受住我的重重考验。谜案的具体信息,晚宴之后再向大家介绍。各位名侦探,祝你们用餐愉快!"画面消失,灯光重新亮起,【侍者】推着餐车缓缓走来。 这个神秘的主人并没有亲临现场。 【御姐侦探】对此十分不满,她拉着【侦探手心】去往盥洗室,这两位精致的美女侦探要在用餐前修补妆容。 【侍者】托起一盘酒,示意大家自便拿取。你打量着眼前的酒杯,山庄主人对艺术有着执着的追求,连酒杯也都是十边形的,说起不同寻常之处,这酒杯还有一个杯耳。 两位美女侦探拿走酒杯刚一落座,德高望重的【安乐椅】侦探便举杯祝词,大家一饮而尽。少年侦探【红领巾】试图和【御姐】侦探交杯被拒绝,突然【侦探手心】皱着眉头吐出来说酒味道不对,一旁的【侍者】赶紧递过手帕擦拭。 "居然用这种廉价的餐酒来敷衍我们!真的是太…"【侦探手心】突然双手扼住自己的脖子,倒在地上。"当….当…当……大厅一角的古董钟敲响了8下。 少年侦探【红领巾】第一时间检查了【侦探手心】的身体,向大家宣布了她的死亡。 挑战已经开始了吗? 【侦探指尖】暗自思忖着。名侦探们慌乱一团,却被【侍者】告知他们已经不能离开这里了。 岛上并没有信号,而接送大家的游船也已经驶出小岛。真是个有趣的主人,【侦探指尖】不禁露出了微笑。

《角色扮演侦探》是自制的一款侦探文字游戏,用JAVA语言实现。

主要需求

用JAVA的基本语法和一些逻辑判断,把剧情串起来,去吧,找出凶手。

主要设计

1、通过随机数,获取玩家所对应的身份

2、设计剧情背景,写好剧本

3、玩家在控制台输入指定的命令,可以与剧情互动。可以通过代码实现:

Scanner sc = new Scanner(System.in)
    //获取从控制台输入的字符
    String input = sc.next();

4、通过逻辑判断,就可以在不同的剧情流程中进行流转。

功能截图

随机获取玩家身份

角色介绍

故事背景

你的任务

探索现场

所以,你找到凶手了吗

代码实现

游戏主界面


public class MainGame extends Story {
    public static void main(String[] args) {
        //实现猜数字小游戏,通过随机的x数以下的随机数,获取你所对应的身份
        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("那么就进入下一步吧!(请输入“yes”)");
        } else {
            character();
            System.out.println("那么就进入案情推理吧!(请输入“yes”)");
        }
        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("下面进行结案投票环节,请选择你认为的凶手:" +
                        "1.安乐椅 2.御姐侦探 3.红领巾侦探 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("请输入您猜测的数字(1-6之间的整数,它将对应你的身份):");
        while (true) {
            int input = sc.nextInt();
            if (input > id) {
                System.out.println("您猜的数据" + input + "大了");
            } else if (input < id) {
                System.out.println("您猜的数据" + input + "小了");
            } else {
                switchChoice(id);
                break;
            }
        }
    }

    public static void switchChoice(int id) {
        System.out.print("现在进行...随机分配,你的身份是:");
        sleep(1000);
        switch (id) {
            case 1:
                System.out.println("安乐椅侦探");
                break;
            case 2:
                System.out.println("御姐侦探");
                break;
            case 3:
                System.out.println("红领巾侦探");
                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("如果想结束游戏进行投票环节请输入“bye”");
        System.out.println("如果需要帮助,请记住输入 “help”");
    }


    //设定所有房间
    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);


        //设定起始房间
        currentRoom = lobby;
    }

    //获得当前房间
    public Room getCurrentRoom() {
        return currentRoom;
    }

}

大厅

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

    @Override
    public void narration() {
        System.out.println("这里有红领巾侦探的杯子(1)和安乐椅侦探(2)的杯子,请输入你要查看的杯子");
        Scanner sc = new Scanner(System.in);
        String cup = sc.next();
        String hCup = "1";//红领巾侦探的杯子
        String ACup = "2";//安乐椅侦探的杯子
        if (cup.equals(hCup)) {
            System.out.println("你注意到“红领巾”侦探在饮酒是的诡异举动,决定去检查它的杯子。他的杯沿一侧检测除了毒药成分,所有人杯沿一侧都检查出了毒药成分!\n" +
                    " 你记得“红领巾”侦探和死者都是左利手!");
        } else if (cup.equals(ACup)) {
            System.out.println("你注意到“安乐椅”侦探领酒时异常的神情,决定去检查它的杯子,这个杯子居然是十一边形的!而其他人的杯子和桌子一样是十边形的。\n ");
        } else {
            System.out.println("你所输入错误,请输入1或2");
        }

    }
}

总结

通过此次的《角色扮演侦探》游戏实现,让我对JAVA的相关知识有了进一步的了解,对java这门语言也有了比以前更深刻的认识。

java的一些基本语法,比如数据类型、运算符、程序流程控制和数组等,理解更加透彻。java最核心的核心就是面向对象思想,对于这一个概念,终于悟到了一些。

以上就是Java实现经典角色扮演侦探游戏游戏的示例代码的详细内容,更多关于Java角色扮演游戏的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java实现经典角色扮演侦探游戏游戏的示例代码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用Java代码实现经典角色扮演侦探游戏游戏

本篇内容主要讲解“怎么用Java代码实现经典角色扮演侦探游戏游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java代码实现经典角色扮演侦探游戏游戏”吧!前言游戏背景百变山庄坐落于太平洋
2023-06-29

C语言实现经典扫雷小游戏的示例代码

扫雷游戏是在一个指定的二维空间里,随机布置雷,把不是雷的位置都找出来,在你点一个位置的时候它会显示它周围全部雷的个数,根据这个线索去找,会更容易赢。本文将用C语言实现这一经典游戏,感兴趣的可以尝试一下
2022-11-13

C语言实现经典windows游戏扫雷的示例代码

今天我们会用C语言实现一个经典的windows小游戏:扫雷。扫雷是一款单机小游戏,每次通关最高难度的关卡都会开心好一阵。现在学会了C语言,总算可以自己实现扫雷了。话不多说,咱们开始吧
2022-11-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录