% 几率机制
% Chance mechanic
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;
}
}
到目前为止,找到物体的%机会的功能,即棍子我已经修复了这个问题中的一些问题,但在一天后仍在研究这个问题 xD
这似乎有效 更新了下面的 % 机会代码
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;
}
}
想通了。关于如何更好地写这个的任何帮助?
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;
}
}
这行得通。可能有一种方法可以缩短它,但我会继续其他项目,所以我不会停留在一件事上
您可以使用简单直接的方法仅使用 Math.random(( 方法进行机会计算。
如果你知道 Math.random(( 返回从 0(含(到 1(不含(的 nubmer,你可以这样计算你的几率:
如果你想在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
}
或者您希望每 2 次尝试发生一次 7 次尝试:
if (Math.random() < 2/7f )
{
// you got it allready by now :)
}
相关文章:
- Javascript-ID冲突的几率
- REST的面向公众的身份验证机制
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- 在AngularJs中添加轮询机制
- 通过Ajax调用的轮询机制
- 是否有javascript机制来修改图像的EXIF元数据信息
- 现有的Web浏览器“chrond”(或等效)机制与JavaScript / AJax一起使用
- setInterval 函数的执行机制是什么
- 这个排序函数内部的机制是什么
- JavaScript 继承机制
- RxJS 5.0 “做同时”类似机制
- 如何使用解析服务器正确设计可靠的确认机制
- Firefox 扩展中的同步机制(例如锁)
- jQuery 切换从选择选项中选择机制
- ngModel的深度对象创建机制
- % 几率机制
- 识别字体嵌入机制
- Javascript 异步事件发出机制
- Java/SpringMVC/Maven项目的缓存破坏机制
- 如何在Sequelize ORM npm-node.js中实现缓存机制