【问题标题】:Choosing how many dice to roll in JavaScript Dice Roller在 JavaScript Dice Roller 中选择要掷多少个骰子
【发布时间】:2017-11-15 14:17:33
【问题描述】:

我试图让我的脚本允许用户选择他们想在我的输入字段中掷多少个骰子(1-40),按钮 onClick() 函数捕获该输入数字并显示/创建“骰子” div。

    <script>
    // ORIGINAL DICE ROLLER CODE, KEEP JUST IN CASE!!!//
      function rollDice(){
        var numDice = document.getElementById("diceNum").value;
        var status = document.getElementById("status");
        var d1 = Math.floor(Math.random() * 6) + 1;
        var diceRoll = d1;

        var container = document.getElementById("diceNum").value;

        for (var i = 0; i < diceNum.value; i++){
          //LOOP THROUGH APPHENDED INPUT VALUE AND POPULATE CONTAINER DIV//
          container.innerHTML = '<div class="dice">+diceRoll+</div>';
        };
        numDice.innerHTML = diceRoll;
        status.innerHTML = "You rolled "+diceRoll+".";+
      };


    // DICE ROLLER V(1.1 MOD) //
      function showdice() {
        var dicenum = prompt("how many dice would you like to roll?");
        var diceint = Math.round(dicenum);
        var diceroll, results = '';

        if (diceint >= "50") {
          alert("we don't have that many dice");
        }

        else if (diceint <= "0") {
          alert("you need to roll at least one die");
        }

        else
          for (i = 1; i <= diceint; i++) {
            diceroll = Math.ceil(Math.random() * 6);
            results += diceroll + ',';
          }
          alert(results);
      }


    // DICE ROLLER V(1.2 MOD) //
      function showdice() {
        var dicenum = prompt("how many dice would you like to roll?");
        var diceint = Math.round(dicenum);
        var results = [];

        if (diceint >= "50") {
          alert("we don't have that many dice");
        }

        else if (diceint <= "0") {
          alert("you need to roll at least one die");
        }

        else
          for (i = 0; i < diceint; i++) {
            results[i] = Math.ceil(Math.random() * 6);
          }
          alert(results.join(', '));
        }
    </script>
  </head>

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

      <form class="" action="index.html" method="post">
        <h4>Choose number of dice to roll</h4>
        <p>[1 - 40]</p>
        <br/>
        <input id="diceNum" type="text" name="DiceNumber" placeholder="">
        <br/>
      </form>

      <br/><br/>

      <div id="dieContainer" class="dice">0</div>
      <br/><br/>
      <button onclick="rollDice()" style="margin-left: 20px; margin-right: 20px;">Roll Dice</button>
      <h2 id="status" style="clear:left;"></h2>
  </body>

我添加了两种不同的解决方案,分别列为 V(1.1) 和 V(1.2),因为我只想使用严格的 JavaScript 和 HTML 来完成这项工作。

[EDIT] 两个版本都已经过测试,但我似乎无法正确理解逻辑以使它们中的任何一个都能正常工作。

如何继续捕获输入值并创建/显示多个骰子 div?

【问题讨论】:

  • 您是否尝试过运行这两种解决方案?当你这样做时会发生什么?
  • 可以通过createElement方法使用js动态创建div。
  • @josephmbustamante 我有,尽管我无法让它们中的任何一个正常工作。我只是将它们保留为早期的前体版本,以便其他人可能会看到我看不到的东西-(我将确保使用这些通知更新我的问题,以免浪费任何人的时间。)

标签: javascript html dice


【解决方案1】:

您最初尝试的简化版本:

function rollDice() {
  var numDice = document.getElementById("diceNum").value;
  var container = document.getElementById("dieContainer");

  container.innerHTML = "";

  for (var i = 0; i < numDice; i++) {
    var diceRoll = Math.floor(Math.random() * 6) + 1;
    container.innerHTML += '<div class="dice">' + diceRoll + '</div>';
  };
};
<h4>Choose number of dice to roll</h4>
<input id="diceNum" type="text" value="3">
<button onclick="rollDice()">Roll Dice</button>
<div id="dieContainer" class="dice"></div>

【讨论】:

  • 非常感谢!!!简化版在我的脚本中完美运行!可读性为 10/10,帮助我清晰地了解逻辑。再次,非常感谢
猜你喜欢
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
相关资源
最近更新 更多