每回合后重置BINGO游戏

时间:2019-09-17 21:06:47

标签: javascript set

进行宾果游戏。就获得不重复的随机数并显示它们而言,一切都可以正常工作。我还准备将设置添加回下一轮的原始阵列。我需要帮助的最后一件事是在不刷新整个页面的情况下重置游戏,以使先前调用的数字消失,而仅显示下一轮调用的数字。

基本上,我在调用并显示数字之前和之后都尝试了Set.clear()方法,但是它除了显示新数字之外,还显示了先前调用的数字。然后,我尝试将其添加到随机数生成器函数,以查看是否可以在再次运行该函数之前清除该集合,但结果仍然相同。在迭代集合中的所有值之后,我也尝试过使用Set.delete(),但这也显示了每一轮的结果。

let numbers = new Set()
  .add("B1")
  .add("B2")
  .add("B3")
  .add("B4")
  .add("B5")
  .add("B6")
  .add("B7")
  .add("B8")
  .add("B9")
  .add("B10");

let called = Array.from(numbers);
let display = new Set();

function getRandomNum() {

  function rando() {
    for (let i = 0; i < called.length; i++) {
      const j = Math.floor(Math.random() * called.length);
      const number = called[i];
      called[i] = called[j];
      called[j] = number;

      if (number) {
        called.splice(j, 1);
      }

      if (called.length < 0) {
        return;
      } else {
        return number;
      }
    }

  }

  if (called.length === 0) {
    index = "No More Numbers";
  } else {
    index = rando();
    display.add(index);
  }
  document.getElementById('bingo').innerHTML = index;

}

function show() {
  function showMe() {
    for (let n of display) {

      document.getElementById('reveal').innerHTML += "<br/>" + n + "<br/>";
      called.push(n);
    }
  }
  showMe();
  display.clear();
}
<div id="bingo">
</div>

<div id="button">
  <button onclick="getRandomNum()">Random Number</button>
</div>

<br/>
<br/>
<br/>

<div id="reveal">
  <button onclick="show()">Numbers Called</button>
</div>

我要做的就是在给BINGO打电话并显示被叫号码之后,将被叫号码“擦干净”,这样一来,就可以执行另一轮Bingo,而不必刷新整个网络。页面。

0 个答案:

没有答案