Objective-C和Sprite Kit游戏开发从入门到精通
上QQ阅读APP看书,第一时间看更新

2.15 随机数

虽然计算机从不干随机的事,但有时候,比如,在开发游戏的时候,随机数又是一项非常重要的工具。

在Objective-C中,我们可以使用arc4random()函数快速生成一个随机的正整数。那么,我们如何控制随机数的范围呢?如果这个范围是连续的就好了,我们主要讨论两种情况。

第一种情况,如果我们需要从0到n-1的随机正整数,可以直接使用如下的代码。

    int rndNum = arc4random() % n;

代码中,我们得到arc4random()函数生成的随机数除以n的余数,这样,其结果就只是0到n-1之间的整数了。此外,这种情况也可以进行一些变形,比如,我们需要0到n的随机数,可以使用如下代码:

    int rndNum = arc4random() % (n + 1);

如果需要1到n之间的随机数,可以使用如下代码。

    int rndNum = arc4random() % n + 1;

第二种情况,如果我们需要min到max之间的随机整数,可以使用以下代码。

    int rndNum = arc4random() % (max - min + 1) + min;

我们可以看到,这是一个通用的获取一个连续范围随机整数的算法。实际上,如果min为1或0时,我们也就可以推算出前面的代码了。