|
本帖最后由 zorsite 于 2012-11-29 20:18 编辑
int randomnum = trunc(uniform(0.0, 100.0));
定义整数 randomnum
double total = 0.0;
定义双精度型数total并令total=0
total +=10;
total=total+10,所以程序到这里的时候total已经等于10了。
if (randomnum <= total)
如果randomnum小于等于10,
{
nt=1;
}
nt=1(即临时实体流的类型为1)
else
{
total +=20;
如果不是,total=total+20,此时total=30
if (randomnum <= total)
如果randomnum小于等于30,
{
nt=2;
}
nt=2(即临时实体流的类型为2)
else
{
total += 30;
如果不是,total=total+30,此时total=60
if (randomnum <= total)
如果randomnum小于等于60,
{
nt=3;
}
nt=3(即临时实体流的类型为3)
else
{
total +=40;
如果不是,total=total+40,此时total=100
if (randomnum <= total)
如果randomnum小于等于100,
{
nt=4;
}
nt=4(即临时实体流的类型为4)
}
}
}
整段代码的核心目的是要设定临时实体流的类型和颜色属性。一共有4种类型,相应的有4种颜色。
而且这4中类型需要满足类型1占10%,类型2占20%,类型3占30%,类型4占40%的比例生成。
其实如果用全局表来做,也就是美女超级版主的方法,是很简单的。但是用全局表给人感觉不专业,或者说,不能给人以“随机”的感觉。让人觉得临时实体的生成是按照固定的表格生成的,而不是随机生成的。于是就有了像宋老师这样的技术达人利用随机函数uniform编写的这段代码。
整段代码的核心为:
如果生成的随机数小于等于10,则生成的临时实体类型属性为1;
如果生成的随机数小于等于30,则生成的临时实体类型属性为2;
如果生成的随机数小于等于60,则生成的临时实体类型属性为3;
如果生成的随机数小于等于100,则生成的临时实体类型属性为4。 |
|