c语言第一个小游戏————猜数字

目录

前言

一、整体思路

1.主函数

2.创建menu函数

3.创建game函数

4.头文件别忘了

5.游戏实现

二、细节处理

1.rand函数

2.srand函数

3.time函数

4.产生随机数的范围

三、代码优化

1.用switch语句代替if语句

2.添加猜数字的次数

3.优化后的代码


前言

当我们学完并熟悉了c语言的循环和分支后就可以尝试开始做一些小游戏了,这会让我们的编程之路不会显得那么枯燥,下面会介绍我完成的c语言第一个小游戏,跟着我的脚步一起学习吧~~~


注:1.创作不易,感谢支持。

       2.如有错误,感谢大佬指出。


一、整体思路

分为一个主函数,以及需要自己创建的game函数和menu函数总共3个部分。

1.主函数

先构建一个游戏整体框架。

一上来先通过do while进入循环,利用menu函数开始菜单,接着提示玩家输入0或1。如果输入1开始游戏,调用game函数;0则退出游戏,若为其他数字则提示“输入错误”。while的值由input的值决定。srand表示产生随机数的种子(后面会详细介绍)。

2.创建menu函数

menu函数里面打印一个简易菜单。

3.创建game函数

先调用rand函数产生1~100的随机数,再利用while循环和if语句提示玩家数字猜大猜小。

4.头文件别忘了

5.游戏实现

二、细节处理

1.rand函数

rand函数用于产生随机数范围为0~RAND_MAX,⼤部分编译器上RAND_MAX的值是32767。但它产生的其实是一个“伪随机数”

因为rand函数里面也是有参数,即产生随机数的“种子”srand,如果不输入,那“种子”的值默认为1。

如图第一次和第二次运行的结果相同。

2.srand函数

srand用于产生随机数的“种子”,是rand的参数。若要使rand产生随机数那么srand的值也是要随机的(这里确实有点绕)。那我们应该这样解决这样一个问题呢?这时我们想到了时间是流动的,是时刻变化的。

3.time函数

我们调用time函数作为srand的参数,使srand的值随着时间的变化而变化,进而rand产生的就是真的随机数了。

    srand((unsigned int)time(NULL));

现在我们就可以尝试理解这行代码了:time返回值为NULL(时间差);unsigned int表示把time的值的类型强制转换为无符号整形。

4.产生随机数的范围

rand()%100+1

rand模上(取余)100的范围是0~99,整体加一后范围就变成了1~100

我们也可以记住这样一个公式:rand%(b-a+1)+a得到范围a~b

三、代码优化

1.用switch语句代替if语句

用switch语句代替if语句,可以使代码更加简洁。

2.添加猜数字的次数

我们可以添加猜数字的次数,提醒玩家还剩几次机会,有“挑战成功”的乐趣,也有“挑战失败”的不甘,以增加游戏的趣味性。

3.优化后的代码

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值