首页 > 解决方案 > 语法错误是什么,为什么非活跃玩家会被计分

问题描述

我正在构建一个简单的骰子游戏。我在计算非活跃玩家的分数时遇到问题。当它切换玩家时,它仍然计入未激活的玩家。我看了很多遍,就是找不到。我什至稍稍休息了一下,向前移动了一点,然后回来了,仍然找不到。这是我的代码。

var scores, roundScore, activePlayer;

scores = [0, 0];
roundScore = 0;
activePlayer = 1;

document.querySelector('.dice').style.display = 'none';
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.querySelector('.btn-roll').addEventListener('click', function 
() {

//ran. number
var dice = Math.floor(Math.random() * 6) + 1;

//    displaying result
var diceDom = document.querySelector('.dice');
diceDom.style.display = 'block';
diceDom.src = 'Assets/dice-' + dice + '.png';

//    update round score IF the rolled # was not a 1
if (dice !== 1) {
    roundScore += dice;
    document.querySelector('#current-' + activePlayer).textContent = 
roundScore;
} else {
    //go to next player
    nextPlayer();
}

});


document.querySelector('.btn-hold').addEventListener('click', function() 
{
// add current score to global
scores[activePlayer] += roundScore;
//update UI
document.querySelector('#score-' + activePlayer).textContent = 
scores[activePlayer];
//check if player won the game


//next player
nextPlayer();
});

function nextPlayer() {
//go to next player
    activePlayer === 0 ? activePlayer = 1 : activePlayer = 0;
    roundScore = 0;

    document.getElementById('current-0').textContent = '0';
    document.getElementById('current-1').textContent = '0';

    document.querySelector('.player-0- 
    panel').classList.toggle('active');
    document.querySelector('.player-1- 
  panel').classList.toggle('active');
    //hide dice when player rolls 1
    document.querySelector('.dice').style.display = 'none';
 }

标签: javascripthtmldom

解决方案


推荐阅读