我正在开发游戏AI并使用一些random来使决策更具随机性。我正在使用cocos2d::random()
我对当前random()
函数的实验表明,如果我选择10K样本,我会得到所需的结果。但是,在游戏中,不太可能选择这样的样本,这使随机函数表现不均匀。
所以,我的问题是,是否有办法用更少的样本来改善随机函数的均匀性。
以下是我使用random()
功能进行拍摄决策的示例:
if( mShouldRedecideCanShootDecision)
{
mShouldRedecideCanShootDecision = false;
int chance = randomInt(0, 100);
// mistake is a floating point number in [0, 1] range
int upTo = std::roundf( mistake * 100.f );
mCanShoot = true;
if(chance < upTo)
{
mCanShoot = false;
}
}
randomInt()
功能基于cocos2d::random()
:
// Max is inclusive
int randomInt(int min, int max)
{
if(min > max)
{
std::swap(min, max);
}
return min + ( cocos2d::random() % (max - min + 1) );
}