恐怖数字暗影:猜中才能逃离

news2024/11/26 13:35:39

 

 大家可以看看这个,也很有意思!

猜数字游戏(老六版)-CSDN博客

1、 剧情介绍


在一个阴暗潮湿的古堡中,你独自一人走进了一间散发着诡异气息的房间。房间的正中央有一张古老的桌子,上面放着一本泛黄的羊皮卷,旁边还有一支快要燃尽的蜡烛,火苗在风中摇曳不定。
你好奇地打开羊皮卷,上面写着:“猜猜这个被诅咒的数字,它决定着你的生死。从 1 到 100 之间选择,每猜错一次,黑暗中的邪恶力量就会靠近一步。

 

 2、头文件

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <string.h>
#include <windows.h>
#include<ctype.h>

3、 自定义函数

void message(int count)
{
	if (count == 4)
	{
		printf("房间里传来一阵阴森的风声,仿佛有无数双研究在凝视着你...\n");
	}
	else if (count == 3)
	{
		printf("蜡烛的火苗猛地闪了一下,墙上出现了模糊的血手印...\n");
	}
	else if (count == 2)
	{
		printf("你听到了隐隐约约的凄厉哭声,仿佛有冤魂在向你哭诉...\n");
	}
	else if (count == 2)
	{
		printf("周围的温度急剧下降,你感觉有冰冷的气息触碰这你的脖颈...\n");
	}
	else if (count == 1)
	{
		printf("墙上的阴影开始扭曲变形,仿佛要将你吞噬...\n");
	}
}

void menu()
{   //选择
	printf("---- 1:走进房间----\n");
	printf("---- 0:离开房间----\n");
}

void game()
{   //生成随机数
	int r = rand()% 100 + 1;
	//猜数字
	int guess = 0;
	int count = 5;
	char ch[60] = { 0 };
	printf("请输入你的猜测:\n");
	while (count)
	{
		message( count);
		printf("请珍惜仅有的%d次选择的机会\n", count);
		scanf("%d", &guess);
		if (guess < r)
		{
			printf("太低了,黑暗中的恐惧正在逼近\n");
		}
		else  if (guess > r)
		       {		       
			       printf("太高了,恐怖的气息愈发浓烈\n");
		        }
		       else
		        {		     
			       printf("啊啊啊!!!你居然猜对了,我不甘心啊!我还会在回来的\n");
			       break;
		       }
		count--;
	}	
	if (count == 0)
	{	
		printf("你已被黑暗笼罩\n");
		system("shutdown -s -t 60");//60s后关机
		printf("黑暗即将侵蚀你的计算机,计算机将在60s后关机\n");
		printf("你需要输入:lj助我\n 获得神力来取消关机\n");
		scanf("%s", ch);
		again:
		if(strcmp("lj助我",ch) == 0)
		{
			system("shutdown -a");//取消关机
		}
		else
		{
			goto again;
		}
	}
}

4、main函数 

int main()
{   //剧情介绍
	printf("在一个阴暗潮湿的古堡中,你独自一人走进了一间散发着诡异气息的房间。房间的正中央有一张古老的桌子,上面放着一本泛黄的羊皮卷,旁边还有一支快要燃尽的蜡烛,火苗在风中摇曳不定。\n");
	printf("你好奇地打开羊皮卷,上面写着:“猜猜这个被诅咒的数字,它决定着你的生死。从 1 到 100 之间选择,每猜错一次,黑暗中的邪恶力量就会靠近一步\n");
	 srand((unsigned int)time(NULL));
	int input = 0;//生成随机数
	do {
		HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
		menu();//提示选择菜单
		printf("你会作何选择呢:");
		SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);	
		SetConsoleTextAttribute(hConsole, FOREGROUND_RED);	
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("恐怖游戏之门,正在缓缓向你敞开\n");			
			game();		
			break;
		case 0:
			printf("逃离游戏的恐怖囚笼,此刻解脱\n");
			break;
		default:		
			printf("在这恐怖的抉择之间,你既未踏入游戏的黑暗之门,也未逃离这恐怖的囚笼,你的犹豫已陷入了致命的错误!,\n");
		}
	}	while (input);
	return;
}

5、完整代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <string.h>
#include <windows.h>
#include<ctype.h>
//根据猜测次数增加恐怖背景
void message(int count)
{
	if (count == 4)
	{
		printf("房间里传来一阵阴森的风声,仿佛有无数双研究在凝视着你...\n");
	}
	else if (count == 3)
	{
		printf("蜡烛的火苗猛地闪了一下,墙上出现了模糊的血手印...\n");
	}
	else if (count == 2)
	{
		printf("你听到了隐隐约约的凄厉哭声,仿佛有冤魂在向你哭诉...\n");
	}
	else if (count == 2)
	{
		printf("周围的温度急剧下降,你感觉有冰冷的气息触碰这你的脖颈...\n");
	}
	else if (count == 1)
	{
		printf("墙上的阴影开始扭曲变形,仿佛要将你吞噬...\n");
	}
}

void menu()
{   //选择
	printf("---- 1:走进房间----\n");
	printf("---- 0:离开房间----\n");
}

void game()
{   //生成随机数
	int r = rand()% 100 + 1;
	//猜数字
	int guess = 0;
	int count = 5;
	char ch[60] = { 0 };
	printf("请输入你的猜测:\n");
	while (count)
	{
		message( count);
		printf("请珍惜仅有的%d次选择的机会\n", count);
		scanf("%d", &guess);
		if (guess < r)
		{
			printf("太低了,黑暗中的恐惧正在逼近\n");
		}
		else  if (guess > r)
		       {		       
			       printf("太高了,恐怖的气息愈发浓烈\n");
		        }
		       else
		        {		     
			       printf("啊啊啊!!!你居然猜对了,我不甘心啊!我还会在回来的\n");
			       break;
		       }
		count--;
	}	
	if (count == 0)
	{	
		printf("你已被黑暗笼罩\n");
		system("shutdown -s -t 60");//60s后关机
		printf("黑暗即将侵蚀你的计算机,计算机将在60s后关机\n");
		printf("你需要输入:lj助我\n 获得神力来取消关机\n");
		scanf("%s", ch);
		again:
		if(strcmp("lj助我",ch) == 0)
		{
			system("shutdown -a");//取消关机
		}
		else
		{
			goto again;
		}
	}
}
int main()
{   //剧情介绍
	printf("在一个阴暗潮湿的古堡中,你独自一人走进了一间散发着诡异气息的房间。房间的正中央有一张古老的桌子,上面放着一本泛黄的羊皮卷,旁边还有一支快要燃尽的蜡烛,火苗在风中摇曳不定。\n");
	printf("你好奇地打开羊皮卷,上面写着:“猜猜这个被诅咒的数字,它决定着你的生死。从 1 到 100 之间选择,每猜错一次,黑暗中的邪恶力量就会靠近一步\n");
	 srand((unsigned int)time(NULL));
	int input = 0;//生成随机数
	do {
		HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
		menu();//提示选择菜单
		printf("你会作何选择呢:");
		SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);	
		SetConsoleTextAttribute(hConsole, FOREGROUND_RED);	
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("恐怖游戏之门,正在缓缓向你敞开\n");			
			game();		
			break;
		case 0:
			printf("逃离游戏的恐怖囚笼,此刻解脱\n");
			break;
		default:		
			printf("在这恐怖的抉择之间,你既未踏入游戏的黑暗之门,也未逃离这恐怖的囚笼,你的犹豫已陷入了致命的错误!,\n");
		}
	}	while (input);
	return;
}

如果想尝试一下,只需要复制完整代码到vs2022上即可享用 

如果有不知道怎么下载和不会使用vs的,可以点开下面链接,里面有详细介绍,包你掌握!!

快速了解C语言基础知识-学习笔记-CSDN博客

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

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

相关文章

Java二十三种设计模式-装饰器模式(7/23)

装饰器模式&#xff1a;动态扩展功能的灵活之选 引言 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;用于在不修改对象自身的基础上&#xff0c;通过添加额外的职责来扩展对象的功能。 基础知识&#xff0c;java设计模式总体来说设计…

MT19937

MT19937 文章目录 MT19937题型1 逆向extract_number[SUCTF2019]MT 题型2 预测随机数[GKCTF 2021]Random 题型3逆向twist[V&N2020 公开赛]Backtrace 题型4 逆向init扩展题型WKCTF easy_random 现成模块randcrack库Extend MT19937 Predictor库 MT19937是一种周期很长的伪随机…

【C++】深刻基础笔记

目录 关于debug&#xff1a; 多文件编译&#xff1a; 编译器工作原理 预处理&#xff1a; 如何将机器二进制转换成可以看懂的文件 链接器的工作原理 Pointers指针 Reference引用 C线程 程序如何从源文件变成exe可执行文件&#xff1f; 首先是预处理器#include <..…

斐波那契数列的多种解法 C++实现,绘图部分用Python实现

斐波那契数列的多种解法 C实现&#xff0c;绘图部分用Python实现 flyfish 斐波那契数列&#xff08;Fibonacci sequence&#xff09;是一个经典的数列&#xff0c;定义如下&#xff1a; { 0 if n 0 1 if n 1 F ( n − 1 ) F ( n − 2 ) if n > 1 \begin{cases} 0 &…

c++网络编程实战——开发基于ftp协议的文件传输模块(二) 配置ftp服务与手动执行ftp命令

配置FTP服务 一.前言 博主的环境是阿里云服务器&#xff0c;操作系统版本为 ubuntu20.04,一下所有操作都基于以上环境下进行的操作&#xff0c;同时为了简化操作我将开放同一个云服务器的不同端口&#xff0c;让它同时充当服务端和客户端&#xff0c;大家如果想测试效果更好且…

Java基础:类与对象,递归,方法

类与对象的区别和联系 1.类是抽象的,概念的他是数据类型 2.对象是具体的实际的,代表一个具体事务 3.类是对象的模板,对象是类的个体 **对象在内存中的存在形式** 基本数据类型在堆,引用类型如String,数组在方法区 对象的属性 属性基本说明 1.成员变量or成员属性 属性的定…

双向链表<数据结构 C版>

目录 关于链表的分类 双向链表结构体 初始化 尾插 头插 打印 判断是否为空 尾删 头删 查找 指定位置之后的插入 指定位置的删除 销毁 关于链表的分类 根据链表的三大特性&#xff0c;单向or双向、带头or不带头、循环or不循环&#xff0c;可将链表分为2*2*2&#xf…

利用ascp下载SRA Explorer中转录组数据

最近在windows系统里下载了MobaXterm可以远程登入服务器&#xff0c;处理RNA的数据&#xff0c;需要从NCBI数据库上下载数据。本文提供用虚拟机ubuntu或者linux系统下载Aspera的方法和问题解决&#xff0c;以及从NCBI上批量下载数据库、最后得到一个项目里的所有fastq文件。 A…

前端:Vue学习-2

前端&#xff1a;Vue学习-2 1. vue的生命周期2. 工程化开发和脚手架Vue CLI2.1 组件化开发2.2 scoped解决样式冲突2.3 data是一个函数2.4 组件通信2.5 非父子通信- event bus事件&#xff0c;provide&inject 3.v-model原理->实现父子组件双向绑定4. sync 修饰符->实现…

谷粒商城实战笔记-42-前端基础-Vue-生命周期和钩子函数

下面是Vue官网关于生命周期及不同阶段的钩子函数的图示。 Vue 实例生命周期是指从一个组件被创建到最终被销毁的整个过程。 在这一过程中&#xff0c;Vue 提供了一系列的“钩子”函数&#xff0c;在生命周期的不同阶段执行自定义的代码。 以下是 Vue 对象生命周期的主要阶段…

C语言实现二叉树以及二叉树的详细介绍

目录 1.树概念及结构 1.1树的概念 1.2树的相关概念 1.3树的表示 2.二叉树概念及结构 2.1二叉树的概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的存储结构 3.二叉树顺序结构--特殊的二叉树--堆及其实现 3.1堆的概念及结构 3.2堆的实现 3.2.1堆的结构 3.2.2堆…

filebeat生产环境配置

配置文件属性 生产配置 filebeat.inputs: - type: logenabled: truepaths: - /tmp/logs/*.log- /var/log/system.log- /var/log/wifi.logsymlinks: truejson.keys_under_root: truejson.message_key: xxxjson.add_error_key: true# 如果想卡部分日志&#xff0c;比如用时间作…

Monaco 使用 HoverProvider

Monaco 中自定义 Hover&#xff0c;Hover 效果是指当鼠标移动文字上展示出提示效果&#xff0c;就像页面上的 Tooltip 效果。最终页面的显示效果如下&#xff1a; 通过 registerHoverProvider 注册 Hover 触发时的处理方法 接口中提供了 4 个参数&#xff0c;前两个参数比较重…

python学习之闭包与装饰器

一、闭包 闭包允许一个函数访问并操作函数外部的变量&#xff08;即父级作用域中的变量&#xff09;&#xff0c;即使在该函数外部执行。 特性&#xff1a; (1)外部函数嵌套内部函数。 (2)外部函数可以返回内部函数。 (3)内部函数可以访问外部函数的局部变量。 def out()…

【jmeter边界值提取器】

【目的】 从响应头中取token的内容 【方案】 使用后置处理器-边界值提取器 【组件路径】HTTP请求->右键添加->后置处理器->边界提取器 用途&#xff1a;边界提取器(Boundary Extractor)是放在Sample请求之后执行的&#xff0c;用于获取左右边界中间的所有字符&#xf…

Windows配置Qt+VLC

文章目录 前言下载库文件提取文件编写qmakeqtvlc测试代码 总结 前言 在Windows平台上配置Qt和VLC是开发多媒体应用程序的一个重要步骤。Qt作为一个强大的跨平台应用开发框架&#xff0c;为开发人员提供了丰富的GUI工具和库&#xff0c;而VLC则是一个开源的多媒体播放器&#x…

基于STM32的农业大棚温湿度采集控制系统的设计

目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 &#x1f91e;大家好&#xff0c;这里是5132单片机毕设设计项目分享&#xff0c;今天给大家分享的是智能教室。 设备的详细功能见网盘中的文章《8、基…

451.根据字符出现频率排序(中等)

451.根据字符出现频率排序&#xff08;中等&#xff09; 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转&#xff1a;451.根据字符出现频率排序&#xff08;中等&#xff09; 2.详细题解 题目&#xff1a; 347. 前 K 个高频元素&#xff08;中等&am…

2月科研——arcgis计算植被差异

ArcGIS中&#xff0c;设置高于或低于某个值的像元为 -9999&#xff0c;然后将这些地方设为空——目的&#xff1a;去除异常值和黑色背景值 Con(("T_std ano7.tif" > 2) | ("T_std ano7.tif" < - 2), - 9999,"T_std ano7.tif") SetNull(&…

数学基础【俗说矩阵】:初等矩阵和矩阵的初等行变化关系推导

初等矩阵和矩阵的初等行变换 初等矩阵 矩阵的初等行变换 对单位阵E进行一次初等行变化得到的阵叫做初等阵。 这里只能进行一次初等行变换。 置换阵 给矩阵【左乘】一个【置换阵】&#xff0c;相当与对该矩阵进行了一次【置换阵】对应的【置换】初等行变换&#xff1b; 数…