C语言中利用函数rand()设计的小游戏

前天了解了rand()函数可以产生随机数的功能,看到了Peter演示出的猜数字的小游戏,回来自己敲了一下,第一次敲出一个游戏来,心中的激动还是不言而喻的。

首先了解一下rand()函数的具体用法。百度百科中的解释是:rand()函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 rand()会导致相同的随机数序列被生成。可见srand()函数和rand()函数是配套使用的,没有了srand()函数,rand()函数产生的随机数比不是随机的。

而srand()的具体用法如下:

1
srand((unsigned)time(0))或者srand((unsigned)time(NULL))

其中srand()在stdlib.h中提供,而调用srand()函数中设置的随机种子,time(NULL)来自time.h。应该引起注意的一点是,srand只需要在所有rand调用前,被调用一次即可,没必要调用多次。

知道了rand()函数的具体用法,猜数字,并对你所猜数字大小进行判断就很容易实现了。我的具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int cho = 0;
int secret ,guess= 0;
int main()
{
srand((unsigned)time(NULL)); //设置随机种子
secret = rand()%100; //产生随机数
put: printf("pls show ur choose:\n");
printf("************1.start the game************\n");
printf("************2.qiut the game***********************\n");
scanf_s("%d", &amp;cho);
if (cho == 1)
{
do {
printf("show ur guess:\n");
scanf_s("%d", &amp;guess);
if (guess &gt; secret) printf("\nur guess is higher than secret.\n");
else if (guess &lt; secret) printf("\nur guess is lower than secret.\n");
}
while (guess != secret);
printf("congratulations!\n");
}
else if (cho!=1&amp;&amp;cho!=2)
{
printf("pls input ur choose!\n");
goto put;
}
return 0;}

附一张游戏截图,欢迎各位大佬对游戏进行评测2333

360%e6%88%aa%e5%9b%be20161013223839174

看到找到了的我还是很激动地哈哈

360%e6%88%aa%e5%9b%be20161013223855498