%机会机械师

时间:2014-12-21 21:19:34

标签: javascript html simplify

function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

function generateNumber() {
document.getElementById("generated-id").innerHTML = getRandomInt (1, 10);
}

function stickForStamina(){
if (stamina > 0 && generateNumber() <= 1) {
stamina = stamina - 1;
stick = stick + 1;
document.getElementById("stamina").innerHTML = stamina;
document.getElementById("stick").innerHTML = stick;
}

}

到目前为止,找到对象的概率为 stick 的函数 我已经在这个问题中解决了一些问题,但是在xD

之后仍然在研究这个问题

这似乎可以在下面使用UPDATED%Chance代码

function stickForStamina(){
var num = getRandomInt(1, 10);
if (stamina > 0 && num <= 10) {
stamina = stamina - 1;
stick = stick + 1;
document.getElementById("stamina").innerHTML = stamina;
document.getElementById("stick").innerHTML = stick;
}

除了现在,我必须想办法以90%的几率获得摇滚9/10

function wildernessForStamina(){
var num = getRandomInt(1, 10);
if (stamina > 1 && num <= 9) {
stamina = stamina - 2;
stick = stick + 1;
rock = rock + 1;
document.getElementById("stamina").innerHTML = stamina;
document.getElementById("stick").innerHTML = stick;
document.getElementById("rock").innerHTML = rock;
}
else if (stamina > 1 && num <=10) {
stamina = stamina - 2;
stick = stick + 1;
document.getElementById("stamina").innerHTML = stamina;
document.getElementById("stick").innerHTML = stick;
}
}

想出来。关于如何更好地写这个的任何帮助?

2 个答案:

答案 0 :(得分:0)

function wildernessForStamina(){
var num = getRandomInt(1, 10);
if (stamina > 1 && num <= 9) {
stamina = stamina - 2;
stick = stick + 1;
rock = rock + 1;
document.getElementById("stamina").innerHTML = stamina;
document.getElementById("stick").innerHTML = stick;
document.getElementById("rock").innerHTML = rock;
}
else if (stamina > 1 && num <=10) {
stamina = stamina - 2;
stick = stick + 1;
document.getElementById("stamina").innerHTML = stamina;
document.getElementById("stick").innerHTML = stick;
}

}

这个作品。可能有一种缩短它的方法,但我会继续其他项目,所以我不会一直停留在一件事上

答案 1 :(得分:0)

您只需使用Math.random()方法就可以使用简单而直接的方式进行机会计算。

如果您知道Math.random()将nubmer从0(包括)返回到1(不包括),您可以计算出这样的机会:

如果你想在50%的情况下做些什么,那么你可以写:

if (Math.random() < 50/100f )
{
    // 50% = 50/100 = 0.5
    //do something
}

同样,如果你想在0%的情况下做某事(0%= 0/100 = 0)那么你可以写:

if (Math.random() < 0/100f )
{
    // this will never execute
    // minimum that random can return is 0 which can't be lower than 0/100 = 0
}

同样,如果你想在100%的情况下做些事情(100%= 100/100 = 1)那么你可以写道:

if (Math.random() < 100/100f )
{
    // this will allways execute
    // maximum that random can return is 0.9999999... which 
    // is always lower than 1
}

但是,还有一些其他情况,你可以使用这种表示法写作。

例如,如果你想做四次中的三次,可以这样写:

if (Math.random() < 3/4f )
{
    // 3/4 = 0.75
    // 3/4 = 3*25 / 4*25 = 75 / 100 
}

或者你想在你写的7次尝试中每2次发生一些事情:

if (Math.random() < 2/7f )
{
   // you got it allready by now :)
}