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

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

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

InnoDB的多版本一致性读的实现

InnoDB是支持MVCC多版本一致性读的,因此和其他实现了MVCC的系统如Oracle,PostgreSQL一样,读不会阻塞写,写也不会阻塞读。虽然同样是MVCC,各家的实现是不太一样的。Oracle通过在block头部的事务列表,和记录中的锁标志位,加上回滚段,个人认为实现上是最优雅的方式。 而PostgreSQL则更是将多个版本的数据都放在表中,而没有单独的回滚段,导致的一个结果是回滚非

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人

JeecgBoot 升级springboot版本到2.6.0

1. 环境描述 Jeecgboot 3.0,他所依赖的springboot版本为2.3.5Release,将springboot版本升级为2.6.0。过程全纪录,从2开始描述。 2. 修改springboot版本号 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-pare

NC 把数字翻译成字符串

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。 现在给一串数字,返回有多少种可能的译码结果 import java.u