通关旅

softgamer的痕迹
posts - 16, comments - 13, trackbacks - 0, articles - 0

C++体会 -- 随机数

Posted on 2008-07-17 14:23 softgamer 阅读(329) 评论(0)  编辑 收藏 引用 所属分类: 学习日志

  
    在游戏的设计中,常用到随机数的概念,如飞行轨迹, 敌人的多少与出现的位置等等。常常我们总是调用rand()函数,
    它的原型在<cstlib.h>
中,比如为了生成0-10之间的整数,通常采用求模符(%)和rand()函数
          rand() % 10;
    这叫做"比例缩放",10就是我们常说的"比例因子",如果我们再加上2,结果就变成了在2-12里面取值。
          2 + rand() % 10;2是位移值
    但是rand()实际上生成的是"伪随机数",重复调用rand()会生成看上去是随机产生的一系列数值。然而,这一系列数值
    会在程序执行时重复出
现。为了实现真正的随机化,就要利用srand来实现,而且为了提供不同的种子,我们可以
    用以下的方法

          srand ( time ( 0 ) );
    这会令计算机通过自己的时钟来自动获得种子数。
    srand () 函数只需在程序中调用一次,就可以得到所需的随机化结果,多次调用不仅徒劳无益,还会降低程序性能。
         
srand ( time ( 0 ) );
         
2 + rand() % 10;
     从2-12里面取值


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理