你猜我猜不猜 (猜数字游戏) 快来小玩一把叭

简介: 你猜我猜不猜 (猜数字游戏) 快来小玩一把叭

目录

😉前言

😀猜数字游戏实现思路

🤪代码的具体实现

🤗对rand函数的分析

😮‍💨总结


😉前言

猜数字小游戏想必大家都在童年玩过吧,基本玩法就是给出一个数字对它进行猜测,猜大猜小进行提示,知道把数字猜正确。现在我们需要用代码实现,在电脑上就是是令电脑随机产生一个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函数的使用位置,最主要的就是我们的阅读资料的能力,在我们学习过程中总会遇到不知道的知识,我们就可以通过使用各种工具帮助我们学习。诸君共勉!

目录
相关文章
|
10月前
|
C语言
【C语言】【典例详解】【刷题】猜名次&&猜凶手【循环练习】
【C语言】【典例详解】【刷题】猜名次&&猜凶手【循环练习】
127 0
|
10月前
猜数字小游戏
猜数字小游戏
41 0
|
5月前
BUUCTF [BJDCTF2020]你猜我是个啥 1
BUUCTF [BJDCTF2020]你猜我是个啥 1
27 0
|
8月前
|
C++
10.【C++猜数字游戏(看一眼就会)】
10.【C++猜数字游戏(看一眼就会)】
92 0
|
10月前
|
C语言
C语言解决逻辑分析题(猜凶手)(猜名次)
C语言解决逻辑分析题(猜凶手)(猜名次)
|
11月前
你知道猜凶手和猜名次如何利用编程实现吗?
你知道猜凶手和猜名次如何利用编程实现吗?
54 0
|
11月前
|
存储 Java
Java实现猜数字小游戏
Java实现猜数字小游戏
45 0
|
11月前
|
C语言
C语言经典问题—猜名次、猜凶手和杨辉三角
C语言经典问题—猜名次、猜凶手和杨辉三角
44 0
刷题:运动员猜名次,从能解决到完美解决的代码进阶
刷题:运动员猜名次,从能解决到完美解决的代码进阶
41 0