鬼屋游戏c++

news2024/12/23 17:16:09

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.coloradmin.cn/o/1482210.html

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

相关文章

Java中的动态代理与Spring AOP编程

第一章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;在Java里&#xff0c;动态代理和Spring AOP&#xff08;面向切面编程&#xff09;是两个能让代码更加灵活、更加干净的强大工具。作为一名Java程序员&#xff0c;小黑觉得掌握它们对于写出高质量的代码来说非常…

win11安装nodejs

一、下载安装包 链接: https://pan.baidu.com/s/1_df8s1UlgNNaewWrWgI59A?pwdpsjm 提取码: psjm 二、安装步骤 1.双击安装包 2.Next> 3.勾选之后&#xff0c;Next> 4.点击Change&#xff0c;选择你要安装的路径&#xff0c;然后Next> 5.点击Install安装 二、…

最新Sora人工智能视频资源网址分享

1&#xff0c;了解什么是Sora * 什么是 OpenAI Sora&#xff1f; Sora 是由 OpenAI 开发的文本到视频模型。它可以按照用户的提示生成长达一分钟的高质量和一致的视频。 * 如何使用 OpenAI Sora 模型&#xff1f; 目前&#xff0c;OpenAI Sora 模型处于内测阶段&#xff0c;并将…

深入剖析k8s-Pod篇

为什么需要Pod&#xff1f; 进程是以进程组的方式组织在一起。受限制容器的“单进程模型”&#xff0c; 成组调用没有被妥善处理&#xff08;资源调用有限&#xff09;&#xff0c;使用资源囤积则导致复杂度上升。 在k8s项目中&#xff0c;Pod的实现需要使用一个中间容器——…

【快速选择】解决TopK问题

目录 一、什么是TopK问题 二、优先级队列 优先级队列介绍 代码实现 三、使用优先级队列解决TopK问题 四、快速选择算法解决TopK问题 快速选择 图解快速选择 代码解决前k小个元素 五、优先级队列与快速选则算法比较 优先级队列 快速选择 一、什么是TopK问题 TopK问题…

Mybatis plus核心功能-IService

目录 1 前言 2 使用方法 2.1 继承ServiceImpl,> 2.2 基础业务开发的使用 2.3 复杂业务开发的使用 2.3 Lambda查询 2.4 Lambda更新 1 前言 我本以为Mapper层的类能够继承BaseMapper<XXX>&#xff0c;而不用我们手动写一些mapper方法已经够离谱了。没想到海油膏…

Zookeeper学习1:概述、安装、应用场景、集群配置

文章目录 概述安装LinuxWindows 配置参数集群参考配置文件配置步骤流程启动 概述 Zookeeper&#xff1a; 为分布式框架组件提供协调服务的中间件 【类似&#xff1a;文件系统通知机制】 负责存储上下层应用关系的数据以及接收观察者注册监听&#xff0c;一旦观察查关心的数据发…

gpt批量工具,gpt批量生成文章工具

GPT批量工具在今天的数字化时代扮演着越来越重要的角色&#xff0c;它们通过人工智能技术&#xff0c;可以自动批量生成各种类型的文章&#xff0c;为用户提供了便利和效率。本文将介绍5款不同的GPT批量工具&#xff0c;并介绍一款知名的147GPT生成工具&#xff0c;以及另外一款…

MyBatis的补充用法

说明&#xff1a;之前介绍过MyBatis的用法&#xff0c;像 用注解和Mapper.xml操作数据库、在Mapper.xml里写动态SQL。最近在一次用MyBatis批量更新数据库对象的场景中&#xff0c;意识到对MyBatis的一些标签用法不太熟悉&#xff0c;所以去 MyBatis官网 看了一些文档&#xff0…

(介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)

前言 本文详细介绍了如何利用物联网技术,通过NodeMCU ESP8266(ESP-12F)模块连接到新版的OneNet平台,使用MQTT协议实现数据的上传与指令的下发。文中首先对NodeMCU ESP8266模块及其特性进行了简介,随后详细阐述了如何配置和使用MQTT协议连接到OneNet平台,实现温湿度数据的…

亚信安慧AntDB:融合架构下的数据管理利器

AntDB的独特架构将集中式和分布式部署模式巧妙融合&#xff0c;为用户提供了全方位的数据管理解决方案。这种一站式的特性使得用户无需在不同系统间来回切换&#xff0c;极大地提高了工作效率。 AntDB同时具备集中式和分布式系统的优点&#xff0c;集中式架构拥有简单易用、管…

Java对象大小计算

概述 在实际应用中&#xff0c;尤其是在进行JVM调优时&#xff0c;理解并正确估计对象大小是非常重要的&#xff0c;因为这直接影响到内存分配、垃圾回收效率以及应用程序的整体性能。 对象的组成 在Java中&#xff0c;计算一个对象的大小是为了了解它在内存中占用的确切空间…

Leetcode2673. 使二叉树所有路径值相等的最小代价

Every day a Leetcode 题目来源&#xff1a;2673. 使二叉树所有路径值相等的最小代价 解法1&#xff1a;遍历 对于满二叉树&#xff0c;父节点 cost[i] 的左右儿子节点分别为 cost[2 * i - 1]、cost[2 * i]。 考虑根到两个互为兄弟节点&#xff08;父节点相同&#xff09;的…

什么是VR虚拟社区|VR元宇宙平台|VR主题馆加盟

VR虚拟社区是指一种基于虚拟现实技术构建的在线社交平台或环境&#xff0c;用户可以在其中创建虚拟化的个人形象&#xff08;也称为avatars&#xff09;并与其他用户进行交流、互动和合作。在VR虚拟社区中&#xff0c;用户可以选择不同的虚拟场景和环境&#xff0c;如虚拟公园、…

Navicat保存的连接密码破解-java代码

第一步&#xff1a;找到加过密的密码 有两种方法可以找到密码&#xff0c;一种是注册表里可以找到&#xff0c;一种是导出连接信息功能&#xff0c;这里说第二种。 1、打开Navicat&#xff0c;点击文件->导出连接菜单 2、导出要破解密码的连接到connections.ncx文件中&…

小程序配置服务器域名的操作步骤(入门级)

将详细列出小程序配置服务器域名的操作步骤&#xff1a; 服务器选购推荐&#xff1a;腾讯云轻量服务器 点击以下任一云产品链接&#xff0c;跳转后登录&#xff0c;自动享有所有云产品优惠权益&#xff1a; 经过笔者亲测&#xff0c;强烈推荐腾讯云轻量应用服务器作为游戏服…

SQL面试题(2)

第一题 创建trade_orders表: create table `trade_orders`( `trade_id` varchar(255) NULL DEFAULT NULL, `uers_id` varchar(255), `trade_fee` int(20), `product_id` varchar(255), `time` varchar(255) )ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_…

11-orm-自研微服务框架

ORM 当开发涉及到存储数据的时候&#xff0c;往往要用到数据库&#xff0c;用的最多的就是mysql了&#xff0c;这里我们实现一个orm&#xff0c;让开发者更加便捷的操作数据库 1. Insert实现 orm的本质就是拼接sql&#xff0c;让开发者更加方便的使用 package ormimport ("…

物联网技术助力智慧城市安全建设:构建全方位、智能化的安全防护体系

一、引言 随着城市化进程的加速和信息技术的迅猛发展&#xff0c;智慧城市已成为现代城市发展的重要方向。在智慧城市建设中&#xff0c;安全是不可或缺的一环。物联网技术的快速发展为智慧城市安全建设提供了有力支持&#xff0c;通过构建全方位、智能化的安全防护体系&#…

百度百科人物创建要求是什么?

百度百科作为我国最大的中文百科全书&#xff0c;其收录的人物词条要求严谨、客观、有权威性。那么&#xff0c;如何撰写一篇高质量的人物词条呢&#xff1f;本文伯乐网络传媒将从内容要求、注意事项以及创建流程与步骤三个方面进行详细介绍。 一、内容要求 1. 基本信息&#…