前言

游戏背景

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

源码获取

源码下载地址:传送门------->

点赞,关注博主后,私聊博主免费获取
需要技术指导,写项目程序,等更多服务请联系博主

今天是持续写作的第 17 / 100 天。
可以关注我,点赞我、评论我、收藏我啦。

JAVA 实现《角色扮演侦探》游戏相关推荐

  1. 一文教你用java实现儿时的超级玛丽游戏

    导读:近年来,Java作为一种新的编程语言,以其简单性.可移植性和平台无关性等优点,得到了广泛地应用.J2SE称为Java标准版或Java标准平台.J2SE提供了标准的SDK开发平台.利用该平台可以开 ...

  2. java实现儿时的超级玛丽游戏

    导读:近年来,Java作为一种新的编程语言,以其简单性.可移植性和平台无关性等优点,得到了广泛地应用.J2SE称为Java标准版或Java标准平台.J2SE提供了标准的SDK开发平台.利用该平台可以开 ...

  3. java简单通讯录的实现02person类_用java实现简单的小游戏(你一定玩过)

    用java实现简单的小游戏(你一定玩过) 对于java初学者来说,通过一些学习小游戏来对swing学习以及对java基础的学习是一个好的方法,同时也给学习带来了很多的乐趣,接下来就给大家分享一个jav ...

  4. java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​ 坐标.大小.颜色.方向.速度 2.抽象类:Ball ​ 设计类:BallMain-创建窗体 ​ BallJPanel- ...

  5. main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...

    文件名称: playgame下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 7050 KB 上传时间: 2013-06-06 下载次数: 3 提 供 者: Lyq ...

  6. 简易贪吃蛇小游戏java版_用GUI实现java版贪吃蛇小游戏

    本文实例为大家分享了java版贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public stat ...

  7. [Leedcode][JAVA][第45题][跳跃游戏 II][贪心算法]

    [问题描述][Leedcode][JAVA][第45题][跳跃游戏 II] 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2.从下标为 0 跳到下标为 1 的位置 ...

  8. java演练 猜奇偶小游戏开发 DB游戏必输的设计

    java演练 猜奇偶小游戏开发 DB游戏必输的设计 阶段一,视频 https://www.ixigua.com/6870390946270446088?logTag=J_BVJOm_LIpQ-hWYY ...

  9. 递归走迷宫java,java递归实现的迷宫游戏

    java递归实现的迷宫游戏 public class Migong { private int gard[][]={  {1,1,1,1,0,1,1,1}, {0,0,0,1,1,1,1,1}, {1 ...

  10. 推箱子游戏的java设计思路_用JAVA实现一个推箱子游戏

    技术应用 TECHNOLOGY AND MARKET Vol. 26,No. 2,2019 用 JAVA 实现一个推箱子游戏 马寅璞1,孔阳坤2 ( 1. 南京信息工程大学计算机软件学院物联网工程 1 ...

最新文章

  1. 进程的同步、互斥以及PV原语
  2. 解决 C# GetPixel 和 SetPixel 效率问题(转)
  3. [CQOI2014]和谐矩阵
  4. Adapter pattern
  5. mysql连接编程环境_C++连接MySQL(一):环境配置和实例
  6. Array和ArrayList区别
  7. 前端学习(2992):vue+element今日头条管理--目录结构说明
  8. python向空列表添加列表_Python列表核心知识点汇总
  9. asp.net web submit链接页面_41. Web 安全之 target=quot;_blankquot; 触发钓鱼风险
  10. linux永久启动服务命令,Linux(CentOS)用service命令启动任意服务
  11. [教程]Tensorflow + win10 + CPU + Python3.6+ 安装教程
  12. dnf最新地图编号2020_2020手游崛起端游没落?网易新端游好玩刺激能搬砖,网友:妙...
  13. Tapestry5 事件处理函数返回结果处理策略
  14. 项目管理-项目整体计划Excel表格绘制
  15. 生成树模型 matlab,最小生成树matlab
  16. OSChina 周日乱弹 ——欣欣像蓉!还我程序员公道!
  17. 系统分析员、系统架构师、项目经理的区别
  18. 大学计算机课要怎么学,大学计算机课学结
  19. 理解IGRP协议-ielab
  20. Spring Boot开发登录、退出功能

热门文章

  1. Discuz中标签及相关帖子的设置使用
  2. 计算机技术与应用专业论文,计算机技术与应用毕业论文
  3. Win10 RealSense L515 ORBSLAM2 配置全攻略
  4. winrar6.0汉化中文版 v6.00烈火版
  5. 苹果手机来电归属地_苹果手机来电铃声、充电音还能这么有趣?这款神器也太炫了...
  6. Python爬虫-爬取常用IP代理
  7. xp系统设置ntp服务器,xp设置ntp服务器地址
  8. django将返回json里的unicode转换为中文
  9. 《深入理解JVM虚拟机》垃圾回收部分 读书笔记
  10. 2020-12-27 python安装包相关命令