骰子随机值 1 到 10 并在 Javascript 中推翻

dice random value 1 to 10 and overthrow in Javascript

本文关键字:Javascript 并在 随机      更新时间:2023-09-26

嗨,我有这样的代码:

 $('#Generator_Rzutow').click (function(){
    var val1 = $('#rzucane').val();
    var val2 = $('#zachowywane').val();
    var zbior = [];
    var limit = 10;
    alert (val1);
    alert (val2); 
    for (var i=0; i<val1;i++){
        var wynik_rzutu = 1+Math.floor(Math.random()*10);
        if (wynik_rzutu<limit){
            zbior.push(wynik_rzutu);
            } else {
                    limit = limit+10;
                    wynik_rzutu = wynik_rzutu+1+Math.floor(Math.random()*10);
                    if (wynik_rzutu<limit){
                zbior.push(wynik_rzutu);
                } else {
                        limit = limit+10;
                        wynik_rzutu = wynik_rzutu+1+Math.floor(Math.random()*10);
                        zbior.push(wynik_rzutu);
                    }
            }
        }
    $('#wypisz').text (zbior);  
  });

我的问题是,当它随机"10"时,它有时会将 10 添加到数组中,而此时它应该随机化另一个时间并将其添加到 prev 值。

我的第二个问题是。如何让它随机化另一个值,并在随机化 10 的情况下将其广告到 prev。例如:所以当它随机化 7x10 和 4 时,它可以得到数字 74,然后它通过它到数组。

我知道我应该在 lop 时做到这一点,但我无法获得工作 soltion,所以我把"如果"

第一个问题是你不会在每次迭代时重置限制。您从限制 10 开始,然后当生成第一个大于 10 的数字时,限制增加到 20,所有后续数字将与 20 进行比较,以查看它们是添加到数组中还是重新生成(并且它们都将添加到数组中,因为它们都小于 20)。

至于你的第二个问题,我认为这段代码的行为是相应的:

for (var i=0; i<val1;i++){
  var wynik_rzutu = 0, limit = 0;
  while (wynik_rzutu >= limit) {
    wynik_rzutu += 1+Math.floor(Math.random()*10);
    limit += 10;
  }
  zbior.push(wynik_rzutu);
}

你也可以添加一个计数器来防止它出现无限循环(例如,如果 Math.random() 总是返回 0.9),但我怀疑这是你真正需要的东西。

相关文章: