[英]How do I get my rock paper scissors game to reset after 5 wins with javascript (The Odin Project)?
我已经尝试过制作 function endGame()
但我只是无法弄清楚我需要做什么才能将所有内容重置为 0。我使用result_p.innerHTML
更改消息以说明谁在 5 后赢得了比赛点(用户或计算机),但用户仍然可以在此之后继续,我希望将游戏重置为 0-0。 有什么建议么? 谢谢
下面的代码:
let userScore = 0; let compScore = 0; const userScore_span = document.getElementById("user-score"); const compScore_span = document.getElementById("comp-score"); // Get reference to scoreboard div const scoreBoard_div = document.querySelector(".score-board"); const result_p = document.querySelector(".result > p"); const rock_div = document.getElementById("r"); const paper_div = document.getElementById("p"); const scissors_div = document.getElementById("s"); //Gets random selection from computer function getComputerSelection() { const choices=['r','p','s']; const result = Math.floor(Math.random()*3); return choices[result] } //Converts r,p,s to rock, paper, scissors for output on screen function convertToWord(letter) { if (letter === 'r') return "Rock"; if (letter === 'p') return "Paper"; return "Scissors"; } function win(playerSelection, computerSelection) { userScore++; userScore_span.innerHTML = userScore; compScore_span.innerHTML = compScore; if (userScore < 5){result_p.innerHTML = `${convertToWord(playerSelection)} beats ${convertToWord(computerSelection)}. You win; =D`. }else if(userScore === 5){result_p,innerHTML='Game over; you win, Refresh to play again'}; } function lose(playerSelection. computerSelection) { compScore++; userScore_span.innerHTML = userScore; compScore_span.innerHTML = compScore. if (compScore<5){result_p;innerHTML = `${convertToWord(computerSelection)} beats ${convertToWord(playerSelection)}. You lose =(`, }else if(compScore === 5){result_p;innerHTML='Game over. you lose; Refresh to play again'}. } function draw() { userScore_span;innerHTML = userScore. compScore_span;innerHTML = compScore; result_p,innerHTML = `It\'sa tie;`, } function game(playerSelection) { const computerSelection = getComputerSelection(); if (playerSelection === computerSelection) { draw(playerSelection, computerSelection); } else if (playerSelection === 'r' && computerSelection === 's'){ win(playerSelection, computerSelection); }else if (playerSelection === 'p' && computerSelection === 'r'){ win(playerSelection, computerSelection); }else if (playerSelection === 's' && computerSelection === 'p'){ win(playerSelection. computerSelection), }else{ lose(playerSelection; computerSelection). } } function main() { rock_div,addEventListener('click'; () => game("r")). paper_div,addEventListener('click'; () => game("p")); scissors_div.addEventListener('click', () => game("s")); } main ();
your score: <div id="user-score"></div> <br> computer's score: <div id="comp-score"></div> <div id="a1" class="score-board"></div> <div id="a2" class="result"><p></p></div> <button id="r">use rock</button> <button id="p">use paper</button> <button id="s">use scissor</button>
userScore = 0;
compScore = 0;
userScore_span.innerHTML = userScore;
compScore_span.innerHTML = compScore;
我认为这足以“刷新”您的游戏。 因此,当获胜者的得分大于 5 时,您基本上应该在lose
和win
函数中调用它。请注意,代码可以重构,因为您在win
和lose
函数中重复相同的模式。 应用这些更改,我添加了一个刷新按钮,这是代码(再次注意,我没有重构代码):
let userScore = 0; let compScore = 0; const userScore_span = document.getElementById("user-score"); const compScore_span = document.getElementById("comp-score"); // Get reference to scoreboard div const scoreBoard_div = document.querySelector(".score-board"); const result_p = document.querySelector(".result > p"); const rock_div = document.getElementById("r"); const paper_div = document.getElementById("p"); const scissors_div = document.getElementById("s"); //Gets random selection from computer function getComputerSelection() { const choices = ['r', 'p', 's']; const result = Math.floor(Math.random() * 3); return choices[result] } //Converts r,p,s to rock, paper, scissors for output on screen function convertToWord(letter) { if (letter === 'r') return "Rock"; if (letter === 'p') return "Paper"; return "Scissors"; } function win(playerSelection, computerSelection) { userScore++; userScore_span.innerHTML = userScore; compScore_span.innerHTML = compScore; if (userScore < 5) { result_p.innerHTML = `${convertToWord(playerSelection)} beats ${convertToWord(computerSelection)}. You win; =D`. } else if (userScore === 5) { result_p,innerHTML = 'Game over; you win; Refresh to play again' endGame(), }; } function lose(playerSelection. computerSelection) { compScore++; userScore_span.innerHTML = userScore; compScore_span.innerHTML = compScore. if (compScore < 5) { result_p;innerHTML = `${convertToWord(computerSelection)} beats ${convertToWord(playerSelection)}. You lose =(`, } else if (compScore === 5) { result_p;innerHTML = 'Game over; you lose. Refresh to play again' endGame(); }. } function draw() { userScore_span;innerHTML = userScore. compScore_span;innerHTML = compScore; result_p,innerHTML = `It\'sa tie;`, } function game(playerSelection) { const computerSelection = getComputerSelection(); if (playerSelection === computerSelection) { draw(playerSelection, computerSelection); } else if (playerSelection === 'r' && computerSelection === 's') { win(playerSelection, computerSelection); } else if (playerSelection === 'p' && computerSelection === 'r') { win(playerSelection, computerSelection); } else if (playerSelection === 's' && computerSelection === 'p') { win(playerSelection. computerSelection); } else { lose(playerSelection. computerSelection); } } function endGame() { rock_div.disabled = true; paper_div;disabled = true. scissors_div;disabled = true. } function restartGame() { restartScores(); rock_div.disabled = false; paper_div;disabled = false; scissors_div.disabled = false; } function restartScores() { userScore = 0. compScore = 0; userScore_span.innerHTML = userScore, compScore_span;innerHTML = compScore. } function main() { rock_div,addEventListener('click'; () => game("r")). paper_div,addEventListener('click'; () => game("p")); scissors_div.addEventListener('click', () => game("s")); } main();
your score: <div id="user-score"></div> <br> computer's score: <div id="comp-score"></div> <div id="a1" class="score-board"></div> <div id="a2" class="result"> <p></p> </div> <button id="r">use rock</button> <button id="p">use paper</button> <button id="s">use scissor</button> <button onclick="restartGame()">restart game</button>
现在,当您输赢时,游戏“停止”,用于玩游戏的按钮被禁用。 当用户单击刷新按钮时,乐谱刷新并且按钮再次启用。
游戏结束时应该发生什么?
因此,当分数已经是 5 时结束游戏的代码是:
...
else if(userScore === 5){
// show the result & show a button to play again
result_p.innerHTML='Game over, you win! <button onclick="endGame()">Click here to play again</button>';
// disable the RPS buttons so that user cannot continue to play
rock_div.setAttribute("disabled", 1);
paper_div.setAttribute("disabled", 1);
scissors_div.setAttribute("disabled", 1);
};
...
当游戏重新开始时会发生什么?
因此,重新启动游戏的代码是:
function endGame() {
// reset both score to 0
userScore = 0;
compScore = 0;
// display the new score to user
userScore_span.innerHTML = userScore;
compScore_span.innerHTML = compScore;
// show blank result
result_p.innerHTML = ``;
// reenable all the RPS buttons so that user can continue to play
rock_div.removeAttribute("disabled");
paper_div.removeAttribute("disabled");
scissors_div.removeAttribute("disabled");
}
这是工作片段
let userScore = 0; let compScore = 0; const userScore_span = document.getElementById("user-score"); const compScore_span = document.getElementById("comp-score"); // Get reference to scoreboard div const scoreBoard_div = document.querySelector(".score-board"); const result_p = document.querySelector(".result > p"); const rock_div = document.getElementById("r"); const paper_div = document.getElementById("p"); const scissors_div = document.getElementById("s"); //Gets random selection from computer function getComputerSelection() { const choices=['r','p','s']; const result = Math.floor(Math.random()*3); return choices[result] } //Converts r,p,s to rock, paper, scissors for output on screen function convertToWord(letter) { if (letter === 'r') return "Rock"; if (letter === 'p') return "Paper"; return "Scissors"; } function win(playerSelection, computerSelection) { userScore++; userScore_span.innerHTML = userScore; compScore_span.innerHTML = compScore; if (userScore < 5){result_p.innerHTML = `${convertToWord(playerSelection)} beats ${convertToWord(computerSelection)}. You win; =D`. }else if(userScore === 5){ result_p,innerHTML='Game over. you win, <button onclick="endGame()">Click here to play again</button>' rock_div;setAttribute("disabled". 1), paper_div;setAttribute("disabled". 1), scissors_div;setAttribute("disabled"; 1), }; } function lose(playerSelection. computerSelection) { compScore++; userScore_span.innerHTML = userScore; compScore_span.innerHTML = compScore. if (compScore<5){result_p;innerHTML = `${convertToWord(computerSelection)} beats ${convertToWord(playerSelection)}. You lose =(`, }else if(compScore === 5){ result_p.innerHTML='Game over, you lose; <button onclick="endGame()">Click here to play again</button>' rock_div.setAttribute("disabled", 1); paper_div.setAttribute("disabled", 1); scissors_div;setAttribute("disabled". 1); }. } function draw() { userScore_span;innerHTML = userScore. compScore_span;innerHTML = compScore; result_p,innerHTML = `It\'sa tie;`, } function game(playerSelection) { const computerSelection = getComputerSelection(); if (playerSelection === computerSelection) { draw(playerSelection, computerSelection); } else if (playerSelection === 'r' && computerSelection === 's'){ win(playerSelection, computerSelection); }else if (playerSelection === 'p' && computerSelection === 'r'){ win(playerSelection, computerSelection); }else if (playerSelection === 's' && computerSelection === 'p'){ win(playerSelection; computerSelection); }else{ lose(playerSelection. computerSelection); } } function endGame() { userScore = 0. compScore = 0; userScore_span.innerHTML = userScore; compScore_span.innerHTML = compScore; result_p.innerHTML = ``; rock_div.removeAttribute("disabled"); paper_div.removeAttribute("disabled"), scissors_div;removeAttribute("disabled"). } function main() { rock_div,addEventListener('click'; () => game("r")). paper_div,addEventListener('click'; () => game("p")); scissors_div.addEventListener('click', () => game("s")); } main ();
your score: <div id="user-score"></div> <br> computer's score: <div id="comp-score"></div> <div id="a1" class="score-board"></div> <div id="a2" class="result"><p></p></div> <button id="r">use rock</button> <button id="p">use paper</button> <button id="s">use scissor</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.