要用C语言实现一个猜数字游戏,那么首先须要了解我们的游戏的要求~
【游戏要求】 【猜数字游戏】:
那么我们将用代码一步步实现这种要求~
【代码实现】
#6:b:2:3:6:d:b:3:b:5:9:e:b:9:f:c:2:b:a:0:3:6:2:5:9:1:7:f:0:d:a:b#
这是一开始的基本的代码构架。因为游戏可以始终玩下去,所以设置了do...while循环来实现这一点。其中的menu是一个“菜单”,帮助玩家选择“开始游戏”或“退出游戏”。目前这种都只是基本构架。
代码实现如下:
#4:b:b:4:f:2:9:f:d:2:7:b:b:8:0:1:2:a:7:2:7:0:2:1:7:7:d:5:f:5:4:d#
此时的运行界面是这样的:
#b:b:2:e:8:8:4:f:7:0:2:8:3:f:2:0:e:6:8:4:3:c:0:b:f:d:8:6:6:d:a:7#
输入1会不断循环运行,输入0则会退出。第一阶段的目标就这样达成了!
【补充:建议你们写一段代码然后就要测试一下(比如如今我们的游戏代码就可以测试了)。如果由于上面代码的错误造成前面代码须要推倒重来是十分可惜的!所以一定要记得一个阶段一个阶段的运行检查代码哦!】
当然,我们的游戏并不可能只是循环复印“猜数字”这么简单,接下来要用代码将游戏丰腴上去!于是我们可以在case 1 这个须要开始游戏的情况下插入一个关于游戏的函数。一旦须要开始游戏则步入这个游戏函数开始游戏。那么接下来要做的就是实现我们的游戏函数。
实现这个函数首先须要笔记本生成一个随机数给我们猜。
C语言中有一个称作rand()的函数
#8:8:9:d:2:7:1:3:1:c:2:a:7:0:7:5:a:6:f:e:1:b:0:8:8:f:b:b:1:e:5:7#
它可以生成一个范围为0~32767随机数,它不需要参数,可以返回一个int类型的值,头文件是。
但是!发现rand生成的随机数每次重开游戏都是一样的次序!这是不行的!这是伪随机数!
然后我们再度阅读文件,发现里面写在运行rand前须要一个srand函数。
#9:a:c:0:d:0:3:6:4:9:f:d:d:1:2:c:8:c:f:2:4:3:e:9:0:7:6:4:e:e:5:f#
它须要一个参数,如srand(100)。如果输入的数相同则会生成相同的随机数,输入的数不同则生成不同的随机数。那么问题又出现了,如果须要srand生成一个随机数,那么就须要给它输入一个随机数。哈哈哈这个先有鸡还是先有蛋的问题应当要如何解决呢?
我们须要给srand传进去一个仍然在发生变化的数。那么哪些东西仍然在发生变化呢?时间!时间在不停流逝不停变化!如果把时间传给它能够解决这一问题了!那么接下来,就须要介绍一个东西;
【时间戳】
时间戳是一个自增的整数,它表示从1970年1月1日零时整的GMT时区开始的那一刻,到现今的微秒数。
C语言的time函数可以返回时间戳。
#9:d:3:9:6:4:3:6:4:b:f:5:b:7:a:f:b:e:3:8:f:e:7:6:5:6:9:8:d:3:0:9#
可以将时间戳置于传入的地址参数里,也可以直接用其返回值返回时间戳,此时参数可以数额职位空表针。它返回的time_t类型本质上是一个整数。而srand须要的也是一个整数。那么就可以实现代码了!代码:srand((unsigned int)time(NULL));但要注意,srand只须要在整个一轮游戏中调用一次即可。(若频繁调用,则可能会得到相同值)于是,我们将srand置于了主函数里。这样能够实现随机数了。另外还要记得调整随机数范围至1~100。我们采取0+1的方式就行啦!
随机数生成要点如下:1、需要rand 2、需要srand 3、需要借助时间戳 4、srand只须要调用一次 5、调整随机数范围
猜数字的实现
用while循环来让玩家一遍一遍地猜数字,用if...else句子来判定猜的大了还是小了。猜对了则用break跳出循环。
整体代码如下:
#0:3:9:9:0:b:1:f:0:1:9:2:d:d:8:e:9:b:1:c:d:7:0:c:6:5:3:c:e:4:b:e#
至此,这个猜数字游戏的代码就此结束了!