2013-04-05 77 views
0

我正在尝试为轮盘系统编写一个脚本,并且我希望脚本运行到银行变量达到0或11,000,并在每次旋转后生成三段数据。在JavaScript中生成多个随机数

为了简单起见,我遗漏了部分代码。 if else语句中的代码不是问题。运行脚本直到变量达到某个点是我卡住的地方。

任何人都可以帮我改写这个脚本吗?提前致谢。

(function() { 
    var bank = 10000; 
    var bet = 1; 

    function spin() { 
    var number = Math.floor(Math.random() * 36); 

    if (number == 0) { 
     document.write("<p>The number " + number + " is neither high nor low.</p>"); 
     // removed 
    } 
    else if (number > 18) { 
     document.write("<p>The number " + number + " is a high number.</p>"); 
     // removed 
    } 
    else { 
     document.write("<p>The number " + number + " is a low number.</p>"); 
     // removed 
    } 
    }; 

    spin(); 

    document.write("<p>Total bank is now " + bank + ".</p>"); 
    document.write("<p>The next bet is " + bet + ".</p>"); 

})(); 
+0

这不是很清楚你的问题是什么,但它看起来像你需要一个while循环的地方,除非你从示例中省略了它。例如,while(bank> 0 && bank <11000){spin()}' – undefined 2013-04-05 20:34:52

+0

我在这里看到的一个问题是Math.floor(Math.random()* 36),它应该是Math.round(Math.random ()* 36),因为在Math.floor的情况下,数字36只会在Math.random()= 1时出现,因此概率不是均匀分布的。你如何计算银行和下注金额? – 2013-04-05 20:35:18

+0

大脑,我没有把它省略,因为我真的不知道从哪里开始。帕提克,我现在会研究一下,因为我不确定它们有什么不同。至于你的第二个问题,我现在还不能讨论。我在一家赌场工作,因为一个人在过去的几个月里一直在玩这个系统,而他并没有失去过一次。他带走了我们一小笔财富。我想知道他是否幸运(我期望的),还是认真的。 – 2013-04-05 20:46:58

回答

0

如果你调用一个页面内,这个循环(即你不希望页面挂上的持续时间,或想显示的结果),你应该使用requestAnimationFrame

window.requestAnimFrame = (function(){ 
    return window.requestAnimationFrame  || 
      window.webkitRequestAnimationFrame || 
      window.mozRequestAnimationFrame || 
      function(callback){ 
      window.setTimeout(callback, 1000/60); 
      }; 
})(); 

然后你的循环设置为只称自己如果银行是你的接受范围之内:

function spinLoop() { 
    spin(); 

    //perform your UI updates here 

    if (bank >= 0 && bank <= 11000) requestAnimFrame(spinLoop); 
} 

你会的,当然,需要开始调用这个函数来启动循环:

spinLoop();