鬼屋游戏c++

c++

#include <iostream>
#include <string>
#include <vector>
#include <cstdlib> // 用于随机数生成
#include <ctime>   // 用于随机数种子using namespace std;// 定义房间结构体
struct Room {string description;bool hasKey;bool hasClue;bool explored;Room(string desc, bool key, bool clue) : description(desc), hasKey(key), hasClue(clue), explored(false) {}
};// 初始化旅馆地图
vector<Room> hotelMap = {Room("你醒来发现自己在一间陌生的旅馆房间里。房间昏暗,仅有的光线透过一扇窗户微弱地照进来。", false, true),Room("这是一间看起来空荡荡的客厅,房间中央有一张旧沙发和一张破旧的茶几。", false, false),Room("你进入了一间闪烁着蓝色灯光的房间,地上铺着柔软的地毯。", false, true),// 在这里添加更多的房间...
};// 玩家的健康值
int health = 100;// 当前房间的索引
int currentRoom = 0;// 函数声明
void printRoomDescription();
void checkBed();
void checkWindow();
void tryOpenDoor();
void examinePainting();
void exploreRoom();
void move(char direction);
void interact();int main() {cout << "欢迎来到鬼屋旅馆!\n";cout << "你的目标是解开谜题,找到秘密钥匙,逃离这座充满怪物和陷阱的鬼屋旅馆。\n";srand(time(0)); // 用于生成随机数种子while (true) {printRoomDescription();interact();}return 0;
}// 输出当前房间的描述
void printRoomDescription() {cout << hotelMap[currentRoom].description << endl;
}// 与房间进行交互
void interact() {cout << "你可以选择:\n";cout << "检查床下 (B)\n";cout << "检查窗户 (W)\n";cout << "尝试打开门 (D)\n";cout << "仔细观察墙上的画 (P)\n";cout << "探索房间 (E)\n";cout << "移动到其他房间 (N/S/E/W)\n";char choice;cin >> choice;choice = toupper(choice);switch (choice) {case 'B':checkBed();break;case 'W':checkWindow();break;case 'D':tryOpenDoor();break;case 'P':examinePainting();break;case 'E':exploreRoom();break;case 'N':case 'S':case 'E':case 'W':move(choice);break;default:cout << "无效的选择,请重新输入。\n";}
}// 检查床下
void checkBed() {cout << "你蹲下来查看床下的空间...\n";// 实现床下的逻辑cout << "你发现了一张纸条和一把旧钥匙。\n";
}// 检查窗户
void checkWindow() {cout << "你走向窗户,仔细观察...\n";// 实现窗户的逻辑cout << "你发现窗户外是一片漆黑,什么也看不清。\n";
}// 尝试打开门
void tryOpenDoor() {cout << "你试图打开门...\n";// 实现打开门的逻辑if (hotelMap[currentRoom].hasKey) {cout << "你使用钥匙成功打开了门。\n";currentRoom++; // 假设打开门后进入下一个房间} else {cout << "门被锁住了,你需要找到钥匙。\n";}
}// 仔细观察墙上的画
void examinePainting() {cout << "你仔细观察墙上的画...\n";// 实现观察画作的逻辑cout << "画作中似乎有些不寻常的地方,你决定再仔细研究一下。\n";
}// 探索房间
void exploreRoom() {cout << "你开始探索房间...\n";// 实现探索房间的逻辑cout << "你在房间里四处寻找,发现了一个看似可疑的角落。\n";
}// 移动到其他房间
void move(char direction) {cout << "你朝着 " << direction << " 移动...\n";// 实现移动到其他房间的逻辑if (direction == 'N') {cout << "你进入了北侧的房间。\n";currentRoom = /* 更新到北侧房间的索引 */;} else if (direction == 'S') {cout << "你进入了南侧的房间。\n";currentRoom = /* 更新到南侧房间的索引 */;} else if (direction == 'E') {cout << "你进入了东侧的房间。\n";currentRoom = /* 更新到东侧房间的索引 */;} else if (direction == 'W') {cout << "你进入了西侧的房间。\n";currentRoom = /* 更新到西侧房间的索引 */;}
}

这里面并不完整啊!因为 ……

GPT
你醒来发现自己在一间陌生的旅馆房间里。房间昏暗,仅有的光线透过一扇窗户微弱地照进来。你穿着简单的短裤和衬衫,四处查看,发现有一张床、一扇上锁的门和一扇半开的窗户。墙上挂着一幅画,画中是旅馆的全貌,似乎隐藏着一些线索。你的目标是解开谜题,找到秘密钥匙,逃离这座充满怪物和陷阱的鬼屋旅馆。你的健康值为100。目前没有武器。可供选择的行动有:检查床下
检查窗户
尝试打开门
仔细观察墙上的画
请告诉我,你想做什么?现在,让我为你展示当前的房间情况。创建图像时出错
创建图像时出错
目前无法提供房间的图像。不过,你可以想象自己处于一间典型的旅馆房间内,窗户微开,一扇锁着的门,床边有一幅可能隐藏着线索的神秘画作。请选择你的下一步行动:检查床下、检查窗户、尝试打开门,或仔细观察墙上的画。User
仔细观察墙上的画。
GPT
你走近墙上的画作,仔细观察。画中描绘了旅馆的外观,但令人感到不寻常的是,旅馆的一扇窗户画得特别突出,似乎在暗示着什么。你注意到画框的一角似乎有些松动。你可以选择:尝试移动画框看看背后是否有东西
返回并选择之前的其他行动
你想做什么?User
尝试移动画框看看背后是否有东西
GPT
你小心翼翼地尝试移动画框。画框确实有些松动,轻轻一推,它便向一侧滑开,露出了隐藏在墙壁上的一个小型保险箱。保险箱上有一个数字锁,需要输入四位数字密码才能打开。现在你面前有一个新的谜题需要解决:找到这四位数字的密码。房间里可能藏有线索。你可以选择:回去检查床下
检查窗户
尝试记忆旅馆外观的画中是否有任何数字暗示
放弃保险箱,尝试其他行动
你想做什么?User
尝试记忆旅馆外观的画中是否有任何数字暗示
GPT
你回头再次仔细观察了旅馆外观的画,这次专注于寻找可能隐藏的数字暗示。你注意到画中那扇被强调的窗户旁边有一个细小的细节:窗户的框架上刻着一串数字——"1923"。这串数字似乎是被刻意放置在那里,与画的其他部分形成对比。这组数字可能就是打开保险箱的密码。你决定尝试使用这组数字。输入"1923"尝试打开保险箱
选择之前的其他行动
你想怎么做?User
输入"1923"尝试打开保险箱
GPT
你小心翼翼地输入数字"1923"到保险箱的数字锁上。一阵轻微的点击声后,保险箱的门缓缓打开了。里面放着几样物品:一把小巧的钥匙,上面刻有“图书室”字样。
一张纸条,上面写着:“真相隐藏于旧时光之中,第一线索在书的世界里寻。”
一个小型急救包,里面有基本的医疗用品。
你获得了图书室的钥匙和一点线索。急救包里的物品可以在你受伤时使用。现在你有了新的目标地点——图书室。但你还需要找到从这个房间出去的方法。你可以选择:检查床下
检查窗户
尝试打开门(现在有了图书室的钥匙)
你想做什么?User
检查窗户
GPT
你走向窗户,仔细观察。窗户是半开的,外面是旅馆的内院,看起来安静而神秘。窗台上有一些灰尘,但你注意到灰尘中有一些似乎是刻意留下的痕迹,形成了向下的箭头。跟随箭头的指示,你发现窗户下方有一块松动的砖头。小心翼翼地移开砖头后,你找到了一张藏在里面的纸条,上面写着:“警惕过道中的影子,它们不总是属于实体。”这似乎是一个警告,提醒你在探索旅馆时要小心。现在你有了一些有用的信息和图书室的钥匙。你还可以:检查床下
尝试打开门(可能可以用图书室的钥匙试试,或者找到其他出口)
你想做什么?User
检查床下
GPT
你蹲下来,小心翼翼地查看床下的空间。尘埃中,你发现了一个被遗忘的小盒子,看起来相当古老,上面布满了灰尘。你伸手将它拿了出来,轻轻地擦去表面的灰尘,发现盒子上雕刻着一些复杂的图案,但没有明显的开启方式。盒子的存在似乎很不寻常,可能隐藏着某种线索或物品。不过,没有立即明显的方法可以打开它。现在你有了一个神秘的小盒子,还有图书室的钥匙和之前的线索。你还可以尝试:保留这个盒子,以后再找方法打开
尝试打开门,看看图书室的钥匙是否也能打开这扇门
你想做什么?User
保留这个盒子,以后再找方法打开保留这个盒子,以后再找方法打开
GPT
你蹲下查看床下的空间。在灰尘和遗忘的物品之间,你发现了一个看起来很旧的木制小盒子,上面布满了雕刻精细的图案。盒子似乎被卡住了,暂时无法打开。你决定保留这个盒子,以后再找方法打开它。现在,你身上有几样物品:图书室的钥匙、旧木盒子、一张神秘的纸条,以及一个小型急救包。你还可以尝试:使用图书室的钥匙尝试打开门
探索其他可能的出口或物品
你想做什么?User
探索其他可能的出口或物品
GPT
在房间里继续探索,你已经检查了床下、窗户,并且发现了隐藏在墙画后的保险箱。目前似乎没有其他显而易见的物品或出口可供探索。你的目前选项是:使用图书室的钥匙尝试打开门,看看它是否也能打开这扇门,或者找到图书室的位置。
重新考虑通过窗户作为一个可能的出口,尽管这可能需要一些勇气和灵活性。
考虑到你已经获得了图书室的钥匙,这似乎指向了你的下一个目标位置。你想尝试使用图书室的钥匙打开门,还是有其他想法?User
使用图书室的钥匙尝试打开门,看看它是否也能打开这扇门,或者找到图书室的位置。
GPT
你拿出图书室的钥匙,走向房间的门。虽然你不确定这把钥匙是否也能打开这扇门,但还是决定尝试一下。你将钥匙插入锁孔,轻轻地转动。意外地,锁发出了点击声,门缓缓打开了。看来这把钥匙不仅能打开图书室,还能打开你房间的门。门外是一条长长的走廊,两边挂着昏暗的灯光,走廊的尽头似乎有一扇标有“图书室”标志的门。走廊显得异常安静,但你记得之前找到的纸条上的警告:“警惕过道中的影子,它们不总是属于实体。”你现在可以选择:小心地沿着走廊前往图书室
探索走廊上的其他房间或物品
返回房间,准备更充分后再出发
你想做什么?User
探索走廊上的其他房间或物品
GPT
你拿出图书室的钥匙,走向房间的门。虽然这把钥匙明显是为了某个特定的地方设计的,但你还是希望它能给你带来一些惊喜。当你尝试将钥匙插入锁孔时,发现它并不适合这扇门的锁。决定离开这个房间,你转身回到窗户边,小心地爬出窗户,进入了旅馆的内院。院子里静悄悄的,四周布满了蔓延的藤蔓和奇异的雕塑,给这个地方增添了一丝神秘感。你环视四周,寻找通往图书室的路径。穿过内院,你找到了一条长长的走廊,两侧是关闭的门和一些可能通往不同区域的标志。在这条走廊的尽头,你看到了一扇门上贴着“图书室”标志的门,这正是你的目的地。你走向图书室的门,使用手中的钥匙轻松地将门打开。门后是一间充满了书籍的宽敞房间,书架高耸,沉重的书香气氛让人感到既安心又充满好奇。现在你在图书室内,有几个选项可以探索:检查书架上的书籍,寻找可能的线索或隐藏物品
寻找图书室中可能的其他出口或秘密通道
检查图书室内的任何特殊装饰或家具
你想做什么?User
检查书架上的书籍,寻找可能的线索或隐藏物品
GPT
你开始仔细检查图书室的书架,观察每一本书。这里的藏书丰富,从古老的文学作品到现代的研究著作,应有尽有。在一本看起来特别古旧的历史书中,你发现了一张夹在书页中的褪色地图。地图上标记了旅馆的布局,特别是一个被标记为“秘密室”的位置,看起来位于旅馆的地下室。此外,在一本描绘旅馆历史的书中,你找到了一个书签,上面写着:“当钟声敲响午夜时,隐藏的通道将展现。”这似乎是一个暗示,指向了旅馆内某个秘密的存在。这些发现让你更加确信,旅馆内隐藏着未被揭露的秘密和故事。现在,你有了一张指向秘密室的地图和一个关于隐藏通道的线索。你还可以:寻找图书室中可能的其他出口或秘密通道
检查图书室内的任何特殊装饰或家具
根据地图的指示,尝试找到通往地下室的路线
你想做什么?User
检查图书室内的任何特殊装饰或家具
GPT
在图书室内四处查看,你的注意力被一张沉重的橡木书桌吸引。桌上铺着一层厚厚的灰尘,显然已经很长时间没有人使用。桌子的一个角落里放着一盏古老的油灯,旁边是一本敞开的日记,似乎等着有人去翻阅。你走近日记,发现它记录了旅馆的一些日常事务和历史事件。在最后几页,日记的笔迹变得潦草急促,作者描述了他们如何发现旅馆下方隐藏着古老的秘密通道,以及他们相信这些通道连接着一些未知的房间和可能藏有宝物的地方。作者还提到,他们留下了一系列线索,希望有勇者能够揭开这个秘密。除此之外,你注意到书桌的一侧有一个看似可以移动的抽屉拉手。抽屉被巧妙地设计为一个隐藏的释放机制,可能会打开某个秘密的部分。你现在可以选择:尝试操作抽屉拉手,看看是否能发现隐藏的机关
根据地图的指示,尝试找到通往地下室的路线
回顾你手中的线索,考虑你的下一步行动
你想做什么?User
尝试操作抽屉拉手,看看是否能发现隐藏的机关

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/714740.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

babylonjs入门-自由相机 FreeCamera

基于babylonjs封装的一些功能和插件 &#xff0c;希望有更多的小伙伴一起玩babylonjs&#xff1b; 欢迎加群&#xff08;点击群号传送&#xff09;&#xff1a;464146715 官方文档 中文文档 案例传送门 懒得打字 粘贴复制 一气呵成 ​

计算机网络——22TCP拥塞

TCP拥塞 TCP拥塞控制机制 端到端的拥塞控制机制 路由器不向主机有关拥塞的反馈信息 路由器的负担较轻符合网络核心简单的TCP/IP架构原则 端系统根据自身得到的信息&#xff0c;判断是否发生拥塞&#xff0c;从而采取动作 拥塞控制的几个问题 如何检测拥塞 轻微拥塞拥塞 控…

Http基础之http协议、无状态协议、状态码、http报文、跨域-cors

Http基础 HTTP基础HTTP协议请求方法持久连接管线化 无状态协议使用Cookie状态管理 状态码1XX2XX OK200 OK204 NO Content206 Content-Range 3XX 重定向301302304307 4XX400401403404 5XX500503 HTTP报文请求报文响应报文通用首部字段Cache-ControlConnectionDate请求首部字段Ac…

JVM 第四部分—垃圾回收相关概念 2

System.gc() 在默认情况下&#xff0c;通过System.gc()或者Runtime.getRuntime().gc()的调用&#xff0c;会显式触发Full GC&#xff0c;同时对老年代和新生代进行回收&#xff0c;尝试释放被丢弃对象占用的内存 然而System.gc()调用附带一个免责声明&#xff0c;无法保证对垃…

博途PLC 面向对象系列之“双通气缸功能块“(SCL代码)

1、面向对象系列之找对象 https://rxxw-control.blog.csdn.net/article/details/136150027https://rxxw-control.blog.csdn.net/article/details/1361500272、博途PLC 面向对象系列之"单通气缸功能块" https://rxxw-control.blog.csdn.net/article/details/1363399…

Spark(1)-wordCount入门

1. 创建Maven项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

JavaScript继承 寄生组合式继承 extends

JavaScript继承 1、JS 的继承到底有多少种实现方式呢? 2、ES6 的 extends 关键字是用哪种继承方式实现的呢? 继承种类 原型链继承 function Parent1() {this.name parentlthis.play [1, 2, 3] }function Child1() {this.type child2 }Child1.prototype new Parent1(…

三天学会阿里分布式事务框架Seata-seata事务日志mysql持久化配置

锋哥原创的分布式事务框架Seata视频教程&#xff1a; 实战阿里分布式事务框架Seata视频教程&#xff08;无废话&#xff0c;通俗易懂版&#xff09;_哔哩哔哩_bilibili实战阿里分布式事务框架Seata视频教程&#xff08;无废话&#xff0c;通俗易懂版&#xff09;共计10条视频&…

上位机图像处理和嵌入式模块部署(当前机器视觉新形态)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 过去的机器视觉处理&#xff0c;大部分都是集中在上位机、或者是服务器领域&#xff0c;这种形式维持了很长的时间。这种业务形态下&#xff0c;无…

windows 11 蓝牙突然消失

解决方法&#xff1a; 1.WinX&#xff0c;点击设备管理器 2.选中蓝牙&#xff0c;右键更新驱动。 3.然后就可以出现了&#xff0c;如下图

程序员是如何看待“祖传代码”的?

目录 ​编辑 程序员是如何看待“祖传代码”的&#xff1f; 一、什么是“祖传代码”&#xff1f; 二、“祖传代码”的利弊 1. 可以节省开发成本 2. 可能引入安全隐患 3. 可能增加系统的维护难度 三、祖传代对程序员的影响 1. 丰富程序员的技能和知识 2. 提高程序员的创…

Python——Tchisla求解器(暴力搜索法)

Tchisla简介 最近玩到一个挺有意思的数字解密小游戏《Tchisla》&#xff0c;其规则类似算24点&#xff0c;也是利用一些数学运算和初始数字计算出目标数字&#xff0c;与算24点不同的是&#xff0c;Tchisla允许不限次数地使用一种初始数字&#xff08;1~9&#xff09;&#xf…

【VSCODE修改代码行间距】解决方案

在我们编码的过程中&#xff0c;由于显示字体和显示器的不同&#xff0c;会需要调整行间距&#xff0c;在vscode默认的选项中没有看到设定行间距的选项&#xff0c;不过&#xff0c;可以手动修改配置档达到目的。 1.打开设置 2.打开配置档&#xff0c;手动进行设定 3.在选项中添…

第七十二天 漏洞发现-Web框架中间件联动GobyAfrogXrayAwvsVulmap

第72天 漏洞发现-Web框架中间件&联动&Goby&Afrog&Xray&Awvs&Vulmap 知识点&#xff1a; 1、Bup简单介绍&使用说明 2、Xray简单介绍&使用说明 3、AWWS简单介绍&使用说明 4、Goby简单介绍&使用说明 5、Afrog简单介绍&使用说明 6、…

带你玩转java封装和继承(上)

上次带大家学习了java里面比较重要的知识点类和对象&#xff0c;而且我们知道java是一门面向对象的语言&#xff0c;有时一个程序里可能有很多类&#xff0c;那么这么多类他们之间有什么联系吗&#xff1f;今天就带大家学习一下java类之间的关系。 什么是继承&#xff1a; 我们…

Linux信号【systemV】

目录 前言 正文&#xff1a; 1消息队列 1.1什么是消息队列&#xff1f; 1.2消息队列的数据结构 1.3消息队列的相关接口 1.3.1创建 1.3.2释放 1.3.3发送 1.3.4接收 1.4消息队列补充 2.信号量 2.1什么是信号量 2.2互斥相关概念 2.3信号量的数据结构 2.4…

蓝桥杯-单片机组基础5——外部中断与LED的控制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…

自学软件测试怎么学?

软件测试是一个变得越来越受欢迎的行业&#xff0c;在IT行业里面&#xff0c;也是初学比较容易的。但对小白而言&#xff0c;怎样学习才能做到快速入门&#xff0c;少走弯路呢&#xff1f; 步骤一&#xff1a;初学学软件测试&#xff0c;要先搞懂这种问题 要想进入到软件测试…

Android Duplicate class 排除重复类

一、起因&#xff1a; 在迭代开发的时候&#xff0c;发现2个ijk很多类重复。但又2个库实现的功能是不一样&#xff0c;目前不能合并。但又想保留2个功能。需要排除其中一个库。 二、报错如何下图&#xff1a; 三、解决方法&#xff1a; 3.1 在terminal 也就是命令行处输入 …

在Windows 11中运行磁盘清理工具的9种方法,总有一种适合你

自Windows98以来,微软在操作系统中包含了一个内置的清理工具。当用户转向第三方清理应用程序时,这个值得信赖的实用程序站稳了脚跟。微软甚至宣布,第三方应用程序几乎毫无用处,删除注册表项不是一个好主意。 磁盘清理工具可以帮助删除临时文件、旧的更新日志、缩略图缓存和…