目录
😉前言
猜数字小游戏想必大家都在童年玩过吧,基本玩法就是给出一个数字对它进行猜测,猜大猜小进行提示,知道把数字猜正确。现在我们需要用代码实现,在电脑上就是是令电脑随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了,还是猜小了,相等表示猜到了。是不是感觉挺有趣的,快往下看,跟着笔者实现代码叭。
😀猜数字游戏实现思路
要求:1.我们需要创建一个菜单界面,2.我们需要让游戏可以玩多次 3. 我们需要实现让电脑数字大小判断 4. 我们需要让电脑自动生成随机数
思路:1.我们可以用一个menu函数封装菜单界面,菜单界面用printf函数打印。 2. 我们可以使用do while 和 switch语句判断。 3. 我们可以生成一个game函数,在里面实现判断大小。 4. 我们可以使用rand函数来生成随机数。
🤪代码的具体实现
🤗对rand函数的分析
对于自动生成随机数,代码里我们调用了rand函数来生成随机数。这时细心的小伙伴就发现怎么还有一个srand函数,srand里面还有一个time函数,怎么无限套娃呢🤔。要是小伙伴们不懂的话就要借助工具了,我可以在软件msdn上或者网站Reference - C++ Reference (cplusplus.com)上可以查询函数的使用。这里我们就用网站来查询叭。
通过查询我们可以发现它说rand函数会返回0-RAND_MAX之间的随机值,它的参数为空,但是使用rand函数要引用头文件#include <stdlib.h>。(看不懂英文可以翻译,网页是可以直接翻译的)
这时使用rand函数后执行程序会发现,第二遍第三遍执行程序……后的数字和第一次执行程序是一样的。这是为什么呢?我们仔细阅读文档就会发现使用rand函数还需要使用srand函数,我们就点击srand看看它究竟是何方神圣。(为了方便大家阅读,将文档转化为中文了)
通过文档我们发现srand就是初始化随机数生成器,它的参数是unsigned int类型,头文件和rand一样。但是重点来了,它说srand的参数需要传一个随机值!!!这…………本来我们就是要随机数,结果它说参数也要随机数,这不是无限套娃了嘛。其实仔细思考我们想到它就是要一个随机值嘛,那在关于计算机有什么是随机值呢,这时我们就想到了时间戳。(时间戳就是时间戳 是从1970年1月1日(UTC/GMT 的午夜)开始所经过的秒数,不考虑闰秒。)。使用时间戳我们就要使用time函数,我们用文档查询(下图二)
我们可以发现time的参数是指针类型,需要用头文件time.h。但我们不需要time的参数,我们就可以传一个空指针NULL进去 。然后又因为rand函数的参数为unsigned int类型,所以我们可以讲time_t强转换为unsigned int类型,初始化随机数就生成了 srand((unsigned int )time(NULL)).因为它是初始化,所以初始化一次就可以了,我们就可以把srand函数放在main函数中。
😮💨总结
到此,猜数字游戏就完成了。这个游戏实现起来比较简单,要注意的点就是随机数怎么生成,srand函数的使用位置,最主要的就是我们的阅读资料的能力,在我们学习过程中总会遇到不知道的知识,我们就可以通过使用各种工具帮助我们学习。诸君共勉!