a = document.getElementById("find").value
if (a == 'Spark' || a == 'Fire') {
var monster = x
var player = y
var damage = Math.floor(Math.random() * 25)
var damageplayer = Math.floor(Math.random() * 30)
alert('Your squad succeeded the enemy has ' + (x = x - damage) + ' original territories!');
alert ('You have' + (y = y - damageplayer) + 'original territories!'); }
这是我上面的代码,我试图让它成为50/50几率,无论损坏是否= Math.Floor(math.random()* 25)或= 0。我尝试将数学.random乘以1然后数学。随机25,并没有奏效。你怎么做到50%的时间它会等于0而另外50%的时间等于math.random * 25?
答案 0 :(得分:8)
这是一种方式:
var coin = function() {
return (Math.random() < 0.5 ? 0 : 1);
}
var damage = 25*coin();
答案 1 :(得分:2)
请勿使用floor()
,因为它始终会向下舍入。使用round()
var zeroOrOne = Math.round(Math.random());
var damage = zeroOrOne * Math.floor(Math.random() * 25);
或者,如果你是那些“尽可能多地将代码填入一行”的人之一:
var damage = Math.round(Math.random()) * Math.floor(Math.random() * 25);
答案 2 :(得分:2)
有时候我想知道Math.random是多么随机......
替代方案:
return(new Date()。getMilliseconds()%2);
答案 3 :(得分:1)
damage = (Math.random() < 0.5) ? 0 : (Math.random() * 25);
答案 4 :(得分:0)
尝试
var aux = Math.random()
if (aux < 0,5){
aux = 0
}else{
aux = damage
}
然后你可以使用var aux代替伤害
答案 5 :(得分:0)
我找到了一种方法:
Math.random();
if(Math.random() >= 0.5){ \\set variable to value A }
else { \\set variable to value B }
由于Math.random
会随机选择一个0
到1
,我会在0.5
处设置支票。