天天看点

C语言编写猜数字小游戏

经过对c语言的初步学习,为提高编程能力,可以敲一些稍费脑筋的代码,猜数字就是一个很好的选择。要想实现该游戏,那么首先我们应该知道制作的大体思路。

电脑应随机产生一个数字(为便于玩家猜的同时,增加难度和趣味性,所以选择1~100)

玩家输入所猜数字,电脑给予反馈。

玩家得知反馈后进行进一步操作。

(如:所猜数字过大,所猜数字过小,所猜数字正确(是否重玩一局))

知道大体思路后我们就可以着手写代码了

首先玩游戏肯定要有进入界面,让别人知道这是什么游戏。

接着可以将主函数大体写出来

然后就是重头戏——游戏主体

根据思路首先要产生随机数

rand

generates a pseudorandom number.

int rand( void );

the rand function returns a pseudorandom integer in the range 0 to rand_max. use the srand function to seed the pseudorandom-number generator before calling rand.

msdn上对rand部分解释如上,我们可以知道rand的返回值在0到rand_max(0x7fff,十进制为32767)之间,那么它是否可以起到产生随机数的作用呢?

经测试其确实可以产生随机数,但再次编译时不难发现,两次的数字是相同的,这就使游戏的趣味性下降了。

C语言编写猜数字小游戏
C语言编写猜数字小游戏

srand

sets a random starting point.

void srand( unsigned int seed );

所以需要srand为其提供生成起点,但srand又需要一个变化的随机数种子来帮助rand生成随机数,所以我们引入一个时间戳的概念(时间戳:当前时间和计算机的起始时间的差值,单位是秒;计算机起始时间:1970年1月1日上午8:00:00)time()函数返回的即是时间戳,时间肯定是一直在改变的,即时间戳也是如此。因每次只需取一次随机种子,所以将该语句放在主函数中。

最后再写一下主程序

ps:第一次写技术类博客,还有很多地方需要改正完善,望各位大佬可以指出我的不足。

继续阅读