目录
前言
当我们学完并熟悉了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.添加猜数字的次数
我们可以添加猜数字的次数,提醒玩家还剩几次机会,有“挑战成功”的乐趣,也有“挑战失败”的不甘,以增加游戏的趣味性。