猜数字游戏详解

今天咱们来一起做一个游戏,可以算上是一个中小型的项目了,大概120多行代码,哈哈哈。来一起加油吧!

当我们面对一个不小的项目的时候,我们先不要着急着手于项目的制作,我们要先学会在脑海中对项目的整体进行构思。一个游戏可能会有什么?游戏说明?游戏选项?是不是也得有游戏菜单呢?没错我们就根据我们平时玩的游戏为模型来构造一个猜数字游戏,等你完成之后就会恍然大悟,原来程序这么简单!

首先在一个项目的刚开始我们毫无疑问会引用一系列的头文件,在正式开始行动的时候我们先来认识一下一些头文件。

1.<stdio.h>  使用printf和scanf需要引用的头文件

2.<stdlib.h>  在使用rand和srand函数的时候需要引用的头文件。

3.<time.h>   在使用time函数的时候需要引用的头文件。

4.<string.h>  在完善程序的时候可能会用到的头文件(在使用strcmp的时候会用到的头文件)

5.<Windows.h>  在完善程序的时候会用到的头文件(在使用system函数以及Sleep函数的时候需要引用的头文件)

(最常用的头文件用法你可以翻阅本人的博客空间,有一篇超详细的头文件博客解析哦。)

其次我们应当了解在一个项目的所有内容肯定不能都放到主函数当中,那样的话就会显得杂乱无章,因此我们就可以将每个部分分装成不同模块的小函数进一步对程序进行编制。

在我们做足了准备,就可以开始我们的程序的制作了。

1.游戏菜单的设计

在我们的想象中,我们的菜单比较简化的话应该是这样的,那么我们先来制作一个最简单的菜单吧! 首先我们想到的就是生成一个菜单的方法不就是打印码?没错我们可以利用一连串的printf函数进行菜单的打印,我们可以将他们密封到一个菜单函数我们就将其命名为menu1。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<Windows.h>
void menu1()
{printf("***********************************************************\n");printf("**                                                       **\n");printf("**                 《猜数字游戏》                        **\n");printf("**                                                       **\n");printf("**    0.退出游戏             1.开始游戏                  **\n");printf("**                                                       **\n");printf("**    2.游戏介绍             3.神秘彩蛋                  **\n");printf("**                                                       **\n");printf("***********************************************************\n");}
int main()
{menu1();
}

 其总的代码形式就是如上图所示。那么下一步呢?菜单打印好了,下一步不就是该我们下一步的选择了吗?我们就可以着手完善自己的程序,我们会想到的是在屏幕上要输入一个数字进行选择判断,我们这里的按键有有四个选项,要是利用四个if语句进行判断的话就会显得比较繁琐,所以我们利用switch分支选择控制语句进行操作。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<Windows.h>
void menu1()
{printf("***********************************************************\n");printf("**                                                       **\n");printf("**                 《猜数字游戏》                        **\n");printf("**                                                       **\n");printf("**    0.退出游戏             1.开始游戏                  **\n");printf("**                                                       **\n");printf("**    2.游戏介绍             3.神秘彩蛋                  **\n");printf("**                                                       **\n");printf("***********************************************************\n");}
int main()
{int input = 0;menu1();printf("请选择\n");scanf("%d", &input);switch (input){case 1:printf("开始游戏\n");break;case 0:printf("退出游戏\n");break;case 2:printf("游戏说明\n");break;case 3:printf("想什么呢?没有彩蛋,好好C语言吧,傻憨憨\n");break;default:printf("输入错误,请重新输入\n");break;}return 0;
}

到此我们的大致的框架结构就已经完成了。我们下一步再来制作其中的细节。对于一个游戏只能玩一次肯定是不行的,我们要想让我们的程序可以反复使用肯定要用到循环语句。我们又想让我们的程序至少进行一次那么我们就应该利用do-while循环语句,那么我们的程序再循环一次之后就多了一次选择的机会。那么我们就将我们的设想进行实现。并且完善我们的使用说明,姑且将我们的说明命名为 introduce吧。那么我们的程序在接下来就会使如下的情况:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<Windows.h>
void menu1()
{printf("***********************************************************\n");printf("**                                                       **\n");printf("**                 《猜数字游戏》                        **\n");printf("**                                                       **\n");printf("**    0.退出游戏             1.开始游戏                  **\n");printf("**                                                       **\n");printf("**    2.游戏介绍             3.神秘彩蛋                  **\n");printf("**                                                       **\n");printf("***********************************************************\n");}
void introduce(void)
{printf("***********************************************************\n");printf("**    游戏名称:《猜数字游戏》                           **\n");printf("**    游戏规则:当你输入一个数字的时候会根据你输入的数字 **\n");printf("**              判断你猜的数字是否正确,当你输入的数字偏 **\n");printf("**              大时候系统会提示你数字偏大,反之数字偏小 **\n");printf("**              当数字猜对时取得胜利。                   **\n");printf("**    游戏制作人:大明超听话                             **\n");printf("**    制作时间:2022年11月9日                            **\n");printf("***********************************************************\n");
}
int main()
{int input = 0;do{menu1();printf("请选择\n");scanf("%d", &input);switch (input){case 1:printf("开始游戏\n");break;case 0:printf("退出游戏\n");break;case 2:introduce();case 3:printf("想什么呢?没有彩蛋,好好C语言吧,傻憨憨\n");break;default:printf("输入错误,请重新输入\n");break;}} while (input);return 0;
}

 当我们的一切都准备好了的时候,我们就可以开始着手制作我们游戏的主要内容了。一个猜数字游戏,这个游戏的核心是什么呢?就是对生成一个随机数的猜测,那么我没就需要系统随机生成一个随机数。这个时候我们就需要用到rand函数了,rand函数会随机生成一个很大的数字,但是在使用rand函数之前我们必须引出一个srand函数,来重置我们每次生成随机数的数值。但是要是单纯的引用srand函数就会发现,每次开始游戏的时候生成的数值都是一样的,这大大降低了游戏的可玩性,我们该怎么解决这个问题呢?我们需要引用time函数了,引用一个时间戳,世间是随时都会变化的所以我们每次生成的数字也会因为时间的改变而改变。特别指出:我们的srand函数只需要引用一次就行,多次引用可能会造成我们程序上的错乱。

因此我们将srand放在主函数中。之后我们就可以在系统中进行简单的逻辑进行构造游戏了。比如:输入一个数字,判断是猜大了还是猜小了,或者是相等。到此为止我们的游戏基本上就已经做好了,在进行一下后来的完善就行了,比如:觉得一大堆提示框太烦人我们就可以利用windows的清屏函数进行系统的清屏,为了是我们的播放速度减慢便于我们观看说明我们可以利用Sleep函数进行系统休眠。在游戏结束之后我们像可以直接提问玩家,是否想要退出,如果输入Yes则退出,输入No则游戏继续,这就需要使用到exit(0)就可以直接选择退出游戏了。在这其中我们还需要strcmp函数进行判断输入的字符串是否为Yes或者No。最后我们程序完成之后的效果如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<Windows.h>
void menu1()
{printf("***********************************************************\n");printf("**                                                       **\n");printf("**                 《猜数字游戏》                        **\n");printf("**                                                       **\n");printf("**    0.退出游戏             1.开始游戏                  **\n");printf("**                                                       **\n");printf("**    2.游戏介绍             3.神秘彩蛋                  **\n");printf("**                                                       **\n");printf("***********************************************************\n");}
void menu2()
{printf("***********************************************************\n");printf("**                    是否想要继续                       **\n");printf("**                                                       **\n");printf("**                    选择:   Yes                       **\n");printf("**                                                       **\n");printf("**                    选择:   No                        **\n");printf("***********************************************************\n");}
void introduce(void)
{printf("***********************************************************\n");printf("**    游戏名称:《猜数字游戏》                           **\n");printf("**    游戏规则:当你输入一个数字的时候会根据你输入的数字 **\n");printf("**              判断你猜的数字是否正确,当你输入的数字偏 **\n");printf("**              大时候系统会提示你数字偏大,反之数字偏小 **\n");printf("**              当数字猜对时取得胜利。                   **\n");printf("**    游戏制作人:大明超听话                             **\n");printf("**    制作时间:2022年11月9日                            **\n");printf("***********************************************************\n");printf("你有五秒的阅读时间\n");Sleep(5000);system("cls");printf("请重新输入:\n");
}
void game()
{int input = 0;int ret = rand() % 100 + 1;while (1){printf("请猜数字:\n");scanf("%d", &input);if (ret > input){printf("猜小了\n");}else if (ret < input){printf("猜大了\n");}else if (ret == input){printf("恭喜你,猜对了\n");Sleep(2000);system("cls");menu2();char arr[20] = { 0 };again:scanf("%s", &arr);if (0 == strcmp(arr, "Yes")){system("cls");break;}if (0 == strcmp(arr, "No")){exit(0);break;}else{printf("输入错误,请重新输入\n");goto again;}}}
}
int main()
{int input = 0;srand((unsigned int)time(NULL));do{again:menu1();printf("请选择\n");scanf("%d", &input);switch (input){case 1:system("cls");printf("开始游戏\n");game();break;case 0:printf("退出游戏\n");break;case 2:system("cls");introduce();goto again;case 3:printf("想什么呢?没有彩蛋,好好C语言吧,傻憨憨\n");Sleep(2000);system("cls");goto again;default:system("cls");printf("输入错误,请重新输入\n");break;}} while (input);return 0;}

以上我们的猜数字游戏也就完成了,感谢您的观看,祝您天天开心。

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

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

相关文章

php猜数字

1.要求&#xff1a;随机写1-10中任意一个数&#xff0c;把猜的数填入文本框&#xff0c;如果猜的数小了&#xff0c;提示“猜小了“&#xff0c;猜大了就提示“猜大了”&#xff0c;如果相等&#xff0c;提示“猜对了”&#xff0c;并重新产生随机数&#xff0c;进行下一次游戏…

关于猜数字游戏的实现

关于简易猜数字游戏的实现 对于今天的三子棋游戏&#xff0c;有以下几个特性: 玩家通过输入数字来选择是否进行游戏或退出游戏&#xff0c;选错时会提示并重新输入通过键盘输入数据后&#xff0c;电脑会提示玩家所猜的数据过大或过小&#xff0c;若猜对则打印恭喜你&#xff…

猜数字游戏代码

for c in range(1,100): aint(input("请输入猜数的数值:1&#xff5e;100")) if (1&#xff1c;a&#xff1c;100) : break else : print("超出范围&#xff0c;请重新输入&#xff01;") for b in range(1,6): dint(input(&q…

世界顶级五大女程序媛,不仅技术强还都是美女

文章目录 1.计算机程序创始人&#xff1a;勒芙蕾丝伯爵夫人2.首位获得图灵奖的女性&#xff1a;法兰艾伦3.谷歌经典首页守护神&#xff1a;玛丽莎梅耶尔4.COBOL之母&#xff1a;葛丽丝穆雷霍普5.史上最强游戏程序媛-余国荔 说起程序员的话&#xff0c;人们想到的都会是哪些理工…

通过百度API检测人脸特征,获取颜值、年龄、性别--C语言实现

文章目录 通过百度API检测人脸特征&#xff0c;获取颜值、年龄、性别--C语言实现一、创建应用获取AK、SK1.注册登陆后点击&#xff1a;人脸识别云服务2.立即使用3.免费尝鲜领取后、创建应用4.拿到API Key 和Secret Key 二、通过API获取图片的颜值、年龄、性别信息1.获取access_…

这款社交APP,不建议女生下

最近发现&#xff0c;一个叫做Hay的APP霸榜App Store榜首多天。 这是一个专注全球聊天交友的APP&#xff0c;主打即时视频聊天功能。 即使语言不通也完全没有关系&#xff0c;Hay在视频聊天的下方&#xff0c;有app内置的翻译&#xff0c;翻译成双方能看得懂的语言。 想体验这款…

【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~ 本系统根据已有的模型上改写&#xff0c;添加了在给照片打分的同时可以显示照片&#xff0c;这样显得更加直观和真实 一、百度API文档 如需要请自行前往官网查询文档相关内容 百度API官网 部分内容如下 接口能力 人脸检测&#…

python神经网络:女生颜值打分器(一)

python讨论qq群&#xff1a;996113038 导语&#xff1a; 前几天写了一个批量下载“小姐姐”图片的爬虫&#xff0c;阅读量还挺高的。本来想多写一些这种类型的文章。毕竟学程序的男生比较多&#xff0c;都喜欢看与妹子相关的文章&#xff0c;但想着&#xff0c;这是一个技术类的…

python调用百度人脸识别对美女进行颜值打分

调用百度人脸识别 一、注册百度api 先百度开发者开发平台注册应用https://ai.baidu.com/tech/face/detect 1、创建应用 2、管理应用 APP_ID, API_KEY, SECRET_KEY都会用到 安装使用Python SDK 二、使用Python SDK 1、安装SDK pip install baidu-aip2、新建一个AipFace&a…

陪玩MM千千万,谁是你的NO.1?使用Python获取陪玩照片进行颜值检测打分

陪玩MM千千万&#xff0c;谁是你的NO.1&#xff1f;使用Python获取陪玩照片进行颜值检测打分 序言工欲善其事&#xff0c;必先利其器1、数据来源分析2、实现步骤3、环境与模块 代码展示 序言 哈喽好兄弟们~ 咱们这几年玩过游戏的&#xff0c;基本都知道陪玩吧&#xff01; 漂…

Python简单实现人脸识别检测, 对某平台美女主播照片进行评分排名

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 开发环境: Python 3.8 Pycharm 2021.2 模块使用: 第三方模块 requests >>> pip install requests tqdm >>> pip install tqdm 简单实现进度条效果 自带模块 os base64 采集代码 导入模块 # 数…

颜值大比拼,用数据告诉你中国哪里美女多?

这个被叫做”颜值调查”的互联网实验于4月29日晚上8点正式开放&#xff0c;截止5月4日24点&#xff0c;共有619位志愿者参与了活动&#xff0c;其中&#xff0c;地址和照片有效信息2413条。 从参与时间上看&#xff0c;29号晚上的短短4个小时以内&#xff0c;参与人数达到峰值的…

吃饱了撑的用python做一个颜值检测 并对美女排名❤

嗨害大家好鸭&#xff01;我是小熊猫&#x1f5a4;! 今天hin闲~ 要闲出P来了&#x1f4a8; 然后花了那么二、四、六、叭&#xff01;分钟~ 做了一个小小的颜值检测~ 目录&#xff08;可点击自己想去的地方哦~&#x1f60b;&#xff09; 开发环境: Python 3.8Pycharm 2021.2 …

别在看不起女程序媛了,一个高颜值女程序媛的日常

「 女程序媛崛起 」 今天这篇文&#xff0c;意义特殊&#xff0c;是我的一个迷妹程序媛-祈澈姑娘写的&#xff0c;她发给我后&#xff0c;我看了通篇&#xff0c;感觉写的很真实&#xff0c;而且又是记录女程序媛的日常&#xff0c;比较少见&#xff0c;所以我很有兴趣&#xf…

Python实现人脸识别检测,对主播进行颜值排行

前言 嗨嗨&#xff0c;我亲爱的家人们 今天来整点不一样的&#xff0c;嘿嘿 用Python简单实现对人脸识别的检测&#xff0c;对某平台主播照片进行评分排名 应该对女主播这个词不陌生吧&#xff0c;怎么说应该还是蛮多人看过一些女主播吧 我无聊的时候也会看看&#xff0c;…

我这个程序员是如何找到女朋友的

估计这是一篇虐狗的文章了&#xff01;&#xff01;请捂好小心脏 昨天刚好是恋爱一周年&#xff0c;那就写写我是如何脱单的故事了。 其实没啥好写的&#xff0c;毕竟我去年6月份换了家公司上班&#xff0c;好像还没过试用期吧。突然邻座的邻座的邻座的UI设计师就在某天加了我…

天天new对象的程序员,居然能找到女朋友?还能教你追女生?

江湖上有种谣言说&#xff1a;程序员不解风情&#xff0c;一天到晚只知道打代码...... 但是程序员也是人&#xff0c;面对心爱之人&#xff0c;也会有浪漫主义的一面。在情人节送给自己的女朋友玫瑰花&#xff0c;对于程序员来说是不是太普通了呢&#xff1f;作为一名程序员&am…

程序员如何找女朋友?教你程序员找女朋友的技巧!

很多程序员都会遇到这样的一个难题&#xff0c;那就是自己到一定年纪了&#xff0c;但是找不到合适的对象&#xff0c;很多程序员由于工作的原因&#xff0c;很少更人接触交流&#xff0c;所以导致性格老实内向&#xff0c;这样的性格对于找女朋友来说是致命的。今天&#xff0…

不会聊天,怎么可能找到女朋友?

如果你的职业规划&#xff0c;就是往专业深度上走&#xff0c;成长为一名专家&#xff0c;如何增大职场成功的概率呢&#xff1f; 主观上&#xff0c;作为一个专家&#xff0c;基本功、架构能力、业务能力、工作态度非常重要&#xff1a; 有夯实的专业基本功架构能力强业务能力…