0

在我的应用程序中,当敌人被杀死时会掉落弹药。此代码有 4 种不同类型的弹药int diceRoll = arc4random() % 3; //0 to 3现在每种弹药类型的生成频率为 25%。是否有可能使例如弹药类型 2 变得更频繁?例如高达 40%,所以其他弹药类型将是 20%

4

2 回答 2

1

你有没有尝试过:

int spaceSet = pow(10, 3); //range of 1000, the bigger the more noticible it gets 
int diceRoll = arc4random() % (spaceSet - 1);
if(diceRoll < (2 * (spaceSet / 10)))
    diceRoll = 0;
else if(diceRoll < (4 * (spaceSet / 10)))
    diceRoll = 1;
else if(diceRoll < (7 * (spaceSet / 10)))
    diceRoll = 2;
else
    diceRoll = 3;

增加随机数的集合并进行划分似乎是个好主意。

于 2013-03-03T11:28:17.093 回答
0

小心...int diceRoll = arc4random() % 3 给出 3 个不同的值:0 到 2,如下所示:

int i, diceRoll;
for (i=1;i<20;i++){
    diceRoll = arc4random() % 3;
    NSLog(@"Roll %i",diceRoll);
}

“%”表示“除以的余数”,没有余数3。

于 2013-03-03T13:06:56.253 回答