改编版猜数字小游戏,猜错了就黑屏(整蛊版本)

2024-08-23 07:44

本文主要是介绍改编版猜数字小游戏,猜错了就黑屏(整蛊版本),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 前情提要

在前一篇博客中,我们了解到了如何获得随机数,并且通过运算可以规定所获得的这个随机数的范围在多少数值之间

那么接下来我们就需要去具体去实现猜数字游戏的各种布置

2. 布置主菜单

玩一个游戏,最开始的界面都会是一个主菜单,英文名也就是menu

在我们打印菜单的时候,也经常构建一个函数叫menu,这是一个我们自己创造的函数,我们给这个menu函数赋予的功能也就是打印出一个主菜单到屏幕上面

在这个函数内部,我们也只需要构建我们需要打印出来的菜单内容即可

41b6eceeb95a417fa71ff0d679e63ef5.png

如图所示,我们所需要的菜单就这样被打印出来了

那么接下来我们还需要具体去识别我们对于菜单里面的选择,对于这种精确的选择内容,此时就需要用到switch语句了

133b4af665e94b99931e83477f388ccc.png

这样一处理,我们菜单的效果就实现了

3. 具体猜数字的游戏实现

这个时候我们就需要真正开始写游戏的运行了,其实到这里就很简单了

我们只需要用到我们前面学到的如何生成一个随机数的知识,然后通过if循环,不断对比我们猜的数字与随机数的大小就可以实现猜数字游戏的基本逻辑了

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void menu()
{printf("***********主菜单*************\n");printf("******   1. play   ********\n");printf("******   0. exit   ********\n");printf("*********敬请期待**************\n");
}void game()
{//1. 生成随机数int r = rand() % 100 + 1;//2. 猜数字int guess = 0;int count = 6;//最多猜6次while (count){printf("你还有%d次机会\n", count);printf("请猜数字:>");scanf("%d", &guess);if (guess < r)printf("猜小了\n");else if (guess > r)printf("猜大了\n");else{printf("恭喜你猜对了,随机数是:%d\n在茫茫人海中相遇不易,请珍惜现在身边的每位同伴\n", r);break;}count--;}if (count == 0){printf("机会使用完,你失败了,正确的数字是:%d\n我们生活中的每次美好邂逅都是极度幸运的\n", r);}
}int main()
{int input = 0;srand((unsigned int)time(NULL));do{//打印简易的菜单menu();//调用函数printf("请选择:>");scanf("%d", &input);switch (input){case 1:game();//玩游戏的过程break;case 0:printf("退出游戏\n");break;default:printf("选择错误,重新选择!\n");break;}} while (input);return 0;
}

然后将game函数用到游戏中,可以在打印的格式中加上一些自己想写的特殊的文案(也让这个猜数字游戏更有趣一些)

4. 整蛊类黑屏关机代码

我们之前提到过,人对计算机的操作本质上都是需要计算机去识别我们的指令的

在我们电脑上,其实关机的操作也是通过一段代码执行的

在下面的介绍,就以Windows系统为例

Windows系统中想要关机,可以利用一个库函数叫做system函数

system函数的使用语法如下

    system("shutdown -s -t 60");

shutdown的意思就是关机,根据英文本意明白即可

后面的60则代表了设置的等待关机时间,单位为秒,设置60就代表60秒后系统便会自动关机

大家可以利用上面的函数自己实践一下,在Windows系统上都是适用的

值得强调的是,由于引用了一个新的库函数,那么必然也要包含其对应的头文件

而system库函数的头文件则是#include<windows.h>

5. 整蛊改版

那么我们如何加入一些整蛊元素呢?

解除关机需要用到的函数也是system

使用语法如下:

system("shutdown -a");

这个函数就可以解除关机了

既然已经确定了要关机,那么我们是否能够对解除关机做出一些限制条件???

此时我们可以用到strcmp这个库函数,它的作用就是判断两个字符串是否是相等的,如果是相等的,那么输出结果就会是0,此时就可以解除关机

如果对方并没有按照你想的办法输入文字,那么她的电脑就非关不可了

#include <windows.h>
#include <string.h>//system可以执行系统命令
int main()
{char input[20] = {0};system("shutdown -s -t 60");again:printf("请注意,你的电脑将在一分钟内关机,如果输入:我是猪 就取消关机\n");scanf("%s", input);if (0==strcmp(input,"我是猪"))//两个字符串不能使用等号比较大小!!!应该使用strcmp-比较字符串大小的库函数{system("shutdown -a");}else{goto again;}return 0;
}

上面的“我是猪”只是一个示例,可随意更改printf内所打印的文字内容

6. 两眼一黑的猜数字游戏改编版

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<string.h>
void a()
{printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("☆☆1.Guess the numbers.☆☆\n");printf("☆☆☆☆☆2.exit☆☆☆☆☆☆\n");printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
}
void b()
{int c = rand()%100+1;int d = 0;int e = 6;while (e) {printf("你还有%d次机会。\n",e);printf("请猜数字:");scanf("%d",&d);if (d<c){printf("猜小了。\n");    }else if (d>c){printf("猜大了。\n");}else{printf("哇,你居然猜对了,真是太棒了,难道你是天才!\n");break;}e--;}if (e==0){printf("很遗憾,你失败了,正确的数字是:%d.\n",c);char input[20] = {0};system("shutdown -s -t 60");again: printf("请注意,你的电脑将在一分钟后自动关机,如果要取消关机,请输入:我是猪。\n");printf("请输入:");scanf("%s",input);if (strcmp("我是猪。",input) == 0){printf("已成功取消关机。\n");system("shutdown -a");}else{printf("输入错误,请重新输入:");goto again;}}
}
int main() 
{int g=0;srand((unsigned int)time(NULL));do{a();printf("请选择1或2:"); scanf("%d",&g) ;switch(g){case 1:b();break;case 2:printf("游戏结束。\n");break;default:printf("选择错误,请重新输入。\n");break;}}while(g);return 0;
}

 

 

这篇关于改编版猜数字小游戏,猜错了就黑屏(整蛊版本)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1098768

相关文章

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地