Я пытаюсь создать игру «камень-ножницы-бумага», но мне кажется, что я застрял с глобальным / локальным объявлением одной из моих переменных. Я обнаружил аналогичную проблему с людьми, использующими функции, но я не могу перевести решения на использование методов DOM.
let playerChoice;
const playerBtns = document.querySelectorAll("button");
playerBtns.forEach((button) => {
button.addEventListener("click", (e) => {
let playerChoice = button.id;
});
});
Проблема, с которой я сталкиваюсь, заключается в том, что playerChoice объявлен локально, и одна из моих других функций пытается подобрать эту переменную глобально.
Можно ли как-то переопределить playerChoice глобально?
Для функции roundWinner () ниже, playerChoice не определен.
function compSelection() {
choices = ["rock", "paper", "scissors"];
let compChoice = Math.floor(Math.random() * choices.length);
return choices[compChoice];
}
function roundWinner() {
const outcome = {
rock: {lose: "paper", win: "scissors"},
paper: {lose: "scissors", win: "rock"},
scissors: {lose: "rock", win: "paper"}
}
if (outcome[playerChoice].win === compChoice()) {
alert("You win!");
} else if (outcome[playerChoice].lose === compChoice()) {
alert("Computer wins!");
} else {
alert("Tie!");
}
}
Спасибо.