回 帖 发 新 帖 刷新版面

主题:关于rand()函数

写了个俄罗斯方块的小游戏,用了rand()来产生新的方块类型,
不过每次开始游戏,方块出现的顺序都是一样的,也就是说:第一个是长条第二个是
四方形的,第三个是....,每局都是这样,这是怎么回事?望解释一下个中原因

回复列表 (共4个回复)

沙发

因为rand()函数用的是伪随机!
其实计算机的函数都是伪随机!

板凳

不知你是否有失使用SRND()?你可查下手册:

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.

3 楼

……如果你用的是VB的话,在每个Rnd()前面加一句Randomize即可

4 楼

首先要用srand()函数种下随机种子
再使用rand()
一般srand()的参数用时间
可以得到随机数
具体用法如下

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
      int i;
      srand(time(0));       /*种下随机种子*/
      for(i=0;i<10;i++)
      {
             printf("%-8d",rand());/*打印随机数*/
       }
      getch();
      return 0;
}


这样每次的随机数都不一样了

我来回复

您尚未登录,请登录后再回复。点此登录或注册