初时C语言1 (用C语言来写猜数字游戏)

哈哈,来更新自己的博客啦:

 

今天给大家用C语言实现一个猜数字的游戏,虽然可能对大家来说这个猜数字游戏有点简单的不能再简单,但是因为本人还是处于一个菜鸟的阶段嘛,感觉能实现这样一个小程序就好开心的哈,如果哪里有什么错误希望大家都给指出来,我好积极的改进进步。后面的话那咱们就开始吧!

需求:

a.写一个猜数字游戏

b.自动产生一个1-100的随机数

c.猜数字

d.猜对了,就恭喜你,游戏结束

e.猜错了,会告诉猜大的了,还是猜小了,继续猜,直到猜对

f.游戏可以一直玩,除非退出游戏

       首先要写出我们的主函数:

这个游戏呢我们要是想玩完一把再玩一把,并且最开始就可以玩游戏,我们就要用到do while循环。

do while循环

do while循环这个结构里面怎么写呢?首先我们需要打印一个菜单,我们用一个函数来打印,这个函数叫menu(),这个函数不是库函数,我们要自己实现这个函数,打印一个简易的菜单。那我们来实现一下。

有了菜单:1叫玩游戏,0叫退出游戏。那我们肯定要玩嘛,那我们就需要让用户选择(提示用户请选择),用print函数。让用户输入一个值选择,就要用scanf函数。这个时候用户可能选1,也可能选0,也有可能选的不是1也不是0。那我们这边的话要判断一下,这就要用到swtich语句,那我们来实现一下。

input呢是输入的意思,如果你选择1呢,就会猜数字,选择0呢就退出游戏,选择其他值呢就重新开始,while循环的条件为什么input呢,如果你选择0退出游戏不玩了,input就为0,为0的话while循环就为假就会跳出游戏,如果你选择1,input是1为真循环就可以再来一次,如果你选择其他的值比如是5,就会提示你选择错误请重新选择,因为input是5,所以也可以再重新选择。现在我们测试一下打印的效果。

真正的猜数字不可能就是这么简单的一个过程,不可能一句话(猜数字)就决定了,只是让大家看一下这个程序的逻辑。接下来我们来实现真的函数,把printf(“猜数字”)删掉,我们来用game()函数来实现这个猜数字过程。 

首先我们猜数字得有数字,要先生成随机数。接下来第二部才是猜数字,怎么生成随机数呢,随机数有一个库函数rand,它叫生成随机数。这个函数怎么用呢:rand()它的参数为无参,返回类型是int,那它返回的就是一个随机数了。我们来测试一下。

但是呢,有一个问题,测试一次后关掉我们重新在测试一次得到的值和第一次是一样的。这样的话玩完一局再玩一局就和第一局出现的数字是完全一样的了,那还怎么能重复玩呢。所以说这个方法是不对的。

RADN_MAX = ox7fff = 32767

rand函数返回的是一个随机整数,是0-RADN_MAX的范围(0-32767之间的数字)。

调用rand函数之前还要调用sand函数来设置随机数的生成器

sand函数的参数是一个整数

现在我调用这个函数看看效果

这是sand函数给的参数100 和 200的效果。所以如果我们给的是一个可变化的量,就能产生随机的数字,这个可变化的量就是时间,我们就把时间戳传进去,时间戳就是一个时间转换出来的数字.这里就要用到了time函数,我们把time函数传进去,但是不用time函数的参数给它一个空值NULL。因为sand需要一个unsigned int类型的参数,所以我们把time函数强制类型转换。如下:

现在我们来看一下效果:

因为我们求的是1-100之间的随机数:所以我们要rand函数%100加1,因为%100得到的是0-99之间的数字,所以加1范围就成了1-100.现在我们再来看:

随机数有了之后紧接着猜数字,这里我们用whiie循环,while(1)就死循环这么猜,每一次猜数字都提示一下printf,猜数字的时候需要输入一个值csanf,猜的数字我们要存起来,所以要定义一个变量,guess,guess就是我们要猜的那个值变量。如果我们猜的guess这个值比随机值小,我们就说猜小了,如果比随机值大,我们就说猜大了,直到猜对数字然后恭喜你,猜对了。猜对了之后就不要猜了我们break跳出去。来看一下最后的代码和效果:

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K稳重

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值