骰子滚动游戏中的错误

时间:2016-12-11 01:36:36

标签: javascript

我必须让用户选择

  • 使用2到7个骰子来玩,和
  • 他们想玩的回合数。

掷骰子按顺序排列,以便成为可能的最大数字。

每轮后,都会添加值。选定次数之后的最高分是获胜者。

我无法超越骰子的数量。

我可以获得所需的骰子数量,但不能得到正确的回合。

然后,持有得分的所有球员得分的计分板也按降序排列,直到你退出游戏。所以它有领导板类的东西。所以它可以选择新游戏。用户名输入等

到目前为止我的代码:

<html>

<head>
  <script>
    function roll() {
      var result = 0;
      var charcode = 0;
      result = Math.ceil(Math.random() * 6);
      charcode = String.fromCharCode(9856 + result);
      return charcode;
    }

    function play() {
      // create dice array
      var humanDice = new Array();
      var computerDice = new Array();

      // totals
      var humanTotal = 0;
      var computerTotal = 0;

      // score
      var score = "";

      // roll the dice 
      var i = "";
      var j;
      var z = prompt("Please enter number of turn you want", 2);
      var n = prompt("Please enter number of die you want to play with", 2);
      for (i = 0; i < n; i++) {
        for (j = 0; j < z; j++) {
          humanDice[i] = roll();
          humanTotal += humanDice[i];
          computerDice[i] = roll();
          computerTotal += computerDice[i];
        }
      }

      // display human dice
      score = humanDice.sort(function (a, b) {
        return b - a;
      });

      document.getElementById('humanDice').innerHTML = score;

      // display computer dice
      score = computerDice.sort(function (a, b) {
        return b - a;
      });
      document.getElementById('computerDice').innerHTML = score;

      document.getElementById('humanTotal').innerHTML = humanTotal;
      document.getElementById('computerTotal').innerHTML = computerTotal;
    }

  </script>
</head>

<body>
  <input type="button" onclick='play()'>
  <h3>Human</h3>
  <div id='humanDice' style="font-size: 64px; line-height: normal;"></div>
  <p id='humanTotal' class='total'></p>

  <div id='computer' class='playerArea'>
    <h3>Computer</h3>
    <div id='computerDice' style="font-size: 64px; line-height: normal;">
    </div>
    <p id='computerTotal' class='total'></p>
  </div>
  <div id='roll'></div>
</body>

</html>

1 个答案:

答案 0 :(得分:0)

您应该将这些属性(roll,total等)组合在对象内部以保持清洁。然后你有playerH.total和playerC.rolls等等。 您的基本错误是骰子阵列中的索引。 i j 上的两个循环应该会导致回合次数diceset 条目,您将覆盖第一个i结果! https://jsfiddle.net/csqmxxey/1/

重要的部分:

for(let i = 0; i < dieset; i++){
    for(let j = 0; j < rounds; j++){
        var idx = j * dieset + i;
        humanDice[idx] = roll();
        // ...
    }
}