Javascript 控制结构未按我希望的方式执行代码的小问题

Javascript 控制结构未按我希望的方式执行代码的小问题,javascript,if-statement,Javascript,If Statement,制作一个游戏,根据谁先到达某个数字来选择胜利者。然而,当我实现一个if语句时,它会破坏我的游戏,因为这个if语句只是在选择了一个获胜者后立即停止游戏 当我删除if语句时,代码会工作并选择一个获胜者,但是,您仍然可以继续单击掷骰子按钮,这不是我希望在这里发生的事情。提前谢谢你 var scores, roundScore, currentPlayer, playTime; game(); document.querySelector(".btn-roll").addEventListener("

制作一个游戏,根据谁先到达某个数字来选择胜利者。然而,当我实现一个if语句时,它会破坏我的游戏,因为这个if语句只是在选择了一个获胜者后立即停止游戏

当我删除if语句时,代码会工作并选择一个获胜者,但是,您仍然可以继续单击掷骰子按钮,这不是我希望在这里发生的事情。提前谢谢你

var scores, roundScore, currentPlayer, playTime;
game();

document.querySelector(".btn-roll").addEventListener("click", function() {
  if (playTime) {
    // 1. random number generator
    var dice = Math.floor(Math.random() * 6) + 1;
    console.log(dice);

    // 2. display the result
    var diceDom = document.querySelector(".dice");
    diceDom.style.display = "block";
    diceDom.src = "/images/dice-" + dice + ".png";

    // 3. update the round score if the rolled number was not a 1

    if (dice !== 1) {
      // i. add score
      roundScore += dice;
      document.querySelector(
        "#current-" + currentPlayer
      ).textContent = roundScore;
    } else {
      // ii. next player
      nextPlayer();
    }
  }
});

document.querySelector(".btn-hold").addEventListener("click", function() {
  if (playTime) {
    // 4. add current players score to global score
    scores[currentPlayer] += roundScore;

    // i. update UI
    document.querySelector("#score-" + currentPlayer).textContent =
      scores[currentPlayer];

    // ii. check who one the game
    if (scores[currentPlayer] >= 10) {
      document.querySelector("#name-" + currentPlayer).textContent =
        "You are the winner!";
      document.querySelector(".dice").style.display = "none";
      document
        .querySelector(".player-" + currentPlayer + "-panel")
        .classList.add("winner");
      document
        .querySelector(".player-" + currentPlayer + "-panel")
        .classList.remove(".active");
      playTime = false;
    } else {
      // iii. next player

      nextPlayer();
    }
  }
});

function nextPlayer() {
  currentPlayer === 0 ? (currentPlayer = 1) : (currentPlayer = 0);
  roundScore = 0;

  //iii. reset scores to 0
  document.getElementById("current-0").textContent = "0";
  document.getElementById("current-1").textContent = "0";

  //iiii. toggle active class for selected player
  document.querySelector(".player-0-panel").classList.toggle("active");

  document.querySelector(".player-1-panel").classList.toggle("active");

  //iiiii. remove dice image when new player is appointed
  document.querySelector(".dice").style.display = "none";
}
document.querySelector(".btn-new").addEventListener("click", game);

function game() {
  scores = [0, 0];
  currentPlayer = 0;
  roundScore = 0;

  // hide dice on intital page load
  document.querySelector(".dice").style.display = "none";

  // reset scores to 0
  document.getElementById("score-0").textContent = "0";
  document.getElementById("score-1").textContent = "0";
  document.getElementById("current-0").textContent = "0";
  document.getElementById("current-1").textContent = "0";
  document.getElementById("name-0").textContent = "Player 1";
  document.getElementById("name-1").textContent = "Player 2";
  // reset colour of player panels
  document.querySelector(".player-0-panel").classList.remove("winner");
  document.querySelector(".player-1-panel").classList.remove("winner");
  document.querySelector(".player-0-panel").classList.remove("active");
  document.querySelector(".player-1-panel").classList.remove("active");
  // re adding the active class
  document.querySelector(".player-1-panel").classList.add("active");
}

我希望位于queryselector“.btn roll”下方的If语句(播放时间)在宣布获胜者后立即停止游戏。但是,它只是不允许这部分代码运行

我找不到一个地方,
游戏时间
变为
每当游戏开始时,两名玩家的分数都被初始化,那么发薪时间应该变为真。当玩家达到10时,发薪时间将变回False,分数将重置。然后,只有游戏才能在上述代码中自动停止。根据代码,游戏只有在单击
.btn hold
时才会停止。不再有
playTime=false
。因此,游戏周期是这样的:首先单击
.btn new
,欢迎第一个玩家按下
。然后第二个玩家单击相同的按钮,依此类推。告诉我,当点击
.btn hold
时?嗨,伊万-当分数[currentPlayer]确定胜利者时,游戏停止值大于10问题在于查询选择器下的第一个代码块“.btn roll”如果游戏时间结构似乎不允许游戏开始,但是如果我删除它,您可以玩游戏,但一旦宣布赢家(某人的分数为10或更多)游戏不会停止,你可以继续——毁掉gae,这就是问题所在