如何将分数推入数组,然后显示它

时间:2019-06-19 15:19:08

标签: javascript html dice

我正在尝试制作一个骰子游戏,每个参与者的目标是尽可能快地收集点数以超过100。每个参与者都可以随意掷骰子并添加点数,但是达到了如果某个游戏被掷出,则该游戏中的点数将消失。例如,如果您在游戏中有15分并及时停止,则可以将这些分带入第二轮。这些点不会在以后的回合中丢失,因此会被包含在摘要中。

我设法:

  • 编写显示骰子图像并汇总当前分数的图像(图像= 1.png,2.png等)。
  • 当玩家掷出1时,将当前分数重置为0。

我需要帮助的是如何编写代码来激活“立即完成”按钮并获取该值并将其推入数组(????),然后清除下一轮的分数->然后在网站上显示比分,而其他回合仍在继续。还应该对得分进行总结,并在每一回合中得分(第一至100)。

这是我的代码:

var points = 0;

var start, dice, print;

window.onload = run;

function $(id) {
  return document.getElementById(id);
}

function run() {
  start = $("throwDice");
  dice = $("dice");
  print = $("print");
  start.onclick = throwDice;
}

function throwDice() {
  var throwD = Math.floor(Math.random() * 6) + 1;
  throwD.innerHTML = '<img width="20%" src="' + throwD + '.jpg">';

  add(throwD);
}

function add(value) {

  points += value;

  if (value == 1) {
    points = 0;
    $("print2").innerHTML = "GAME OVER"
  } else {
    $("print2").innerHTML = "";
    $("print").innerHTML = points;
  }
}
<div class="round">
  <h1>The endless road</h1>
  <button id="throwDice">Throw Dice</button> <button>Done for now</button>
  <div id="dice" class="dice"></div>
  <h2 id="print"></h2>
  <p id="print2"></p>
</div>

1 个答案:

答案 0 :(得分:1)

基本上,您只需要向其回调函数的“立即完成”按钮添加另一个click事件监听器

  • 将当前点推送到数组
  • 将点重置为0
  • 更新屏幕上的文本元素

类似的东西:

var points = 0;
var pointsArray = new Array();
var start, dice, print;


function $(id) {
  return document.getElementById(id);
}

function run() {
  start = $("throwDice");
  dice = $("dice");
  print = $("print");
  start.onclick = throwDice;
  done = $("done");
  done.onclick = stopRound;
}

function stopRound() {
  pointsArray.push(points);
  points = 0;
  $("print").innerHTML = points;
  $("print3").innerHTML = pointsArray;
}

function throwDice() {
  var throwD = Math.floor(Math.random() * 6) + 1;
  throwD.innerHTML = '<img width="20%" src="' + throwD + '.jpg">';

  add(throwD);
}

function add(value) {

  points += value;

  if (value == 1) {
    points = 0;
    $("print2").innerHTML = "GAME OVER"
  } else {
    $("print2").innerHTML = "";
    $("print").innerHTML = points;
  }
}
run();
<div class="round">
  <h1>The endless road</h1>
  <button id="throwDice">Throw Dice</button> <button id="done">Done for now</button>
  <div id="dice" class="dice"></div>
  <p id="print3" style="float:right;"></p>
  <h2 id="print"></h2>
  <p id="print2"></p>

</div>