在生活中,我们肯定玩过猜数字游戏,游戏规则就是随机让人抽取一个数字,然后一个一个数字猜测,知道猜到为止。现在我将用C语言将其运行出来。
首先,在写代码之前,很重要的一点是要先写出大致的思路以及猜数字游戏所需要的各个环节,我们演示一下从1——100,首先我们需要创建菜单,让玩家进行选择,其次,怎样产生随机1——100的数字,猜中了会怎么样,猜错了会怎么样。这样我们就把大致的思路都弄清了然后就是开始写代码,但在此之前,需要了解怎么产生随机数,那就是运用rand函数,但是当我们输入rand的值多次时,我们会发现她所出现的值的大小是一样的,为什么呢?如果再深⼊了解⼀下,我们就不难发现,其实rand函数⽣成的随机数是伪随机的,伪随机数不是真正的随机数,是通过某种算法⽣成的随机数。真正的随机数的是⽆法预测下⼀个值是多少的。那这样的数就不够随机,那该如何解决呢?
这是,我们需要srand函数来改变rand的值,但srand也是随机数那就有需要一个随机数来让srand随机,这不就变成无限套娃了吗?这时候,我们需要引用时间函数,因为时间是一直在变化的,我在网上查找了他的说法
{ time 函数会返回当前的⽇历时间,其实返回的是1970年1⽉1⽇0时0分0秒到现在程序运⾏时间之间的 差值,单位是秒。返回的类型是time_t类型的,time_t类型本质上其实就是32位或者64位的整型类型time函数的参数timer如果是⾮NULL的指针的话,函数也会将这个返回的差值放在timer指向的内存中带回去。 如果timer是NULL,就只返回这个时间的差值。time函数返回的这个时间差也被叫做:时间戳。 time函数的时候需要包含头⽂件:time.h}
既然我们已经了解了随机数的生成,那我们就可开始了
首先我们将随机数先生成,因为如果随机数的生成和输出的位置过于接近,那么所产生的时间相隔的距离就会很接近,所以我们要提前。然后我们进行输入,用循环将其包裹,如果想再玩一把就可以重复进行了。进行switch的判断如果我们输入0,可以结束游戏并且跳出循环,选1就可以进入游戏。
进入游戏后,我们要思考游戏代码的编写了,我们可以给玩家增加点难度,就是如果6次没有猜对就算结束,首先我们需要一个循环,直到我们猜到答案为止,然后进行判断,如果猜测的数字和随机数不同,就告知离随机数是偏大还是偏小。如果猜对了,就将循环的条件变成零跳出循环,没猜测一次,数量加1,当数量到达6时,就算游戏失败,代码如下
下面我们就可以开始完了
这就是全部内容,谢谢各位大哥大姐的观看。