我希望某些东西(“目标”)以随机顺序出现五次(总共 10 次)。
下面代码的问题是我可以让它以随机顺序显示,但不一定是五次:
function rand_float(min:Number,max:Number=NaN):Number {
if (isNaN(max)) { max = min; min=0; }
return Math.random()*(max-min)+min;
}
function rand_integer(min:Number,max:Number=NaN):int {
if (isNaN(max)) { max = min; min=0; }
return Math.floor(rand_float(min,max));
}
function rand_boolean(chance:Number=0.5):Boolean {
return (Math.random() < chance);
}
var a_list:Array = ['a','b','d','e'];
var target:String = 'b';
for (var i:int = 0; i < 10; i++) {
if (rand_boolean()) {
trace('random other thing: ' + a_list[rand_integer(0,3)]);
} else {
trace('target! :' + target);
}
}
因为 rand_boolean 方法是 50-50,它要么“显示”,要么“不显示”,但不能保证它总是 10 次中的 5 次。
我想我可以放入一个计数器,然后在 5 次后限制它(如果它超过)或强制它显示更多(如果说,8 次后它只显示一次)但也许有更好的方法来去做这个?