Я разрабатываю игру "укажи и щелкни", в которой пользователю представляется координата, а затем ему нужно щелкнуть соответствующую координату.
Я разработал его так, чтобы, если они верны, добавлен класс, который ставит зеленую рамку вокруг их оценки. Если они неверны, добавляется другой класс, который ставит красную рамку вокруг их оценки. Это работает при первом запуске игры. Проблема заключается в том, что при каждом последующем воспроизведении применяется только красная граница, независимо от того, правильна она или нет.
Я сбит с толку, потому что он все еще правильно подсчитывает счет - если вы нажмете на правильный квадрат, то вы все равно получите очко, но он применяет неправильный класс.
Вот ссылка на мой кодовый блок: https://codepen.io/jacobc1596/pen/yLNwQZR
Вот что я считаю соответствующим кодом:
function startGame() {
board.style.pointerEvents = 'all';
target.innerHTML = randomSquare;
gameTime()
document.querySelectorAll('.square').forEach(item => {
item.addEventListener('click', event => {
if(item.id == randomSquare) {
score++
tries++
scoreOutput.innerHTML = score;
randomSquare = rndSq(squareset);
target.innerHTML = randomSquare;
scoreOutput.classList.add('correct'); //adds 'correct' class
scoreOutput.classList.remove('incorrect'); //removes 'incorrect' class
} else {
tries++;
// scoreDisplay.innerHTML = score;
randomSquare = rndSq(squareset);
target.innerHTML = randomSquare;
scoreOutput.classList.remove('correct'); //removes 'correct' class
scoreOutput.classList.add('incorrect'); //adds 'incorrect' class
};
})
})
};
//Reset Game (runs when the game timer runs out)
function reset() {
tries=0;
score=0;
target.innerHTML = '';
strt.style.visibility = "visible";
rst.style.visibility = 'hidden';
board.style.pointerEvents = 'none';
//to remove whatever class was last applied before game finish.
scoreOutput.classList.remove('incorrect');
scoreOutput.classList.remove('correct');
scoreOutput.innerHTML = '';
}
//End Game
function end() {
scoreDisplay.innerHTML = "Time's Up! You scored " + score + " points!"
reset();
}
.correct {
border:6px solid green;
border-radius: 50%;
}
.incorrect {
border:6px solid red;
border-radius: 50%;
}