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;
}
}
想出来。关于如何更好地写这个的任何帮助?
答案 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 :)
}