根据Steffen 的帖子BOOL
,这是在 cocos2d中生成随机 s 的有效方法
+(BOOL) getYesOrNo
{
return (CCRANDOM_0_1() < 0.5f);
}
但是我如何为此设置一个范围?(例如 0 - 29 是区间和 5 个BOOL
=
NO
,25 个BOOL
=
YES
)
根据Steffen 的帖子BOOL
,这是在 cocos2d中生成随机 s 的有效方法
+(BOOL) getYesOrNo
{
return (CCRANDOM_0_1() < 0.5f);
}
但是我如何为此设置一个范围?(例如 0 - 29 是区间和 5 个BOOL
=
NO
,25 个BOOL
=
YES
)
你可以这样做:
+(BOOL) getYesOrNo
{
int tmp = (arc4random() % 30)+1;
if(tmp % 5 == 0)
return YES;
return NO;
}
您应该使用arc4random
随机数生成器。
#include <stdlib.h>
u_int32_t
arc4random(void);
arc4random() 函数使用 arc4 密码使用的密钥流生成器,它使用 8*8 8 位 S-Box。S-Box 可以处于大约 (2* 1700) 个状态。 arc4random() 函数返回 0 到 (2 *32)-1 范围内的伪随机数,因此具有 rand 和 random 范围的两倍。
-(BOOL)foo4random
{
u_int32_t randomNumber = (arc4random() % ((unsigned)RAND_MAX + 1));
if(randomNumber % 5 ==0)
return YES;
return NO;
}
有关arc4random
类型的更多信息
男人 arc4random
在终端上。
以下代码将生成一个随机布尔值:
-(BOOL) randomBool
{
int tmp = (arc4random() % 10);
if(tmp % 2 == 0)
return YES;
return NO;
}