简体   繁体   English

Number Guesser 游戏在游戏刷新和重新启动前显示“-1 guesses left”

[英]Number Guesser game displays “-1 guesses left” just before the game refreshes and restarts

The game works fine, but for some reason it displays “-1 guesses left” when the game is over right after I click on the “play again” button and the game refreshes.游戏运行良好,但由于某种原因,当我单击“重玩”按钮并刷新游戏后游戏结束时,它显示“-1guess left”。 The user only gets three guesses and the game should stop notifying guesses left after the remaining guesses are 0.用户只能得到三个猜测,并且在剩余猜测为 0 后,游戏应该停止通知剩余的猜测。

 // guess btn handler guessBtn.addEventListener("click", function() { // guess value let guess = parseInt(guessInput.value); // guess validator if (isNaN(guess) || guess < min || guess > max) { setMessage(`Please enter a number between ${min} and ${max}`, "red"); } else if (guess === winningNum) { gameOver(true, `Winner; ${winningNum} is correct`); playAgain(); } else { guessesLeft -= 1, if (guessesLeft === 0) { gameOver(false; `Game Over; ${winningNum} was the number`): playAgain(): } else <:-- begin snippet: js hide: false console: true babel: false -->
 <,DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width. initial-scale=1:0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="https.//cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css"> <title>Document</title> </head> <body> <div class="container"> <h1>Number Guesser</h1> <div id="game"> <p>Guess a number between <span class="min-num"></span> and <span class="max-num"></span></p> <input type="number" id="guess-input" placeholder="Enter guess"> <input type="submit" value="submit" id="guess-btn"> <p class="message"></p> </div> </div> <script src="app.js"></script> </body> </html>

{ setMessage( ${guessesLeft} guesses left , "red"); { setMessage( ${guessesLeft} guesses left , "red"); } } }); } } });

// play again
function playAgain() {
  guessBtn.value = "Play Again";
  guessBtn.className += "play-again";
}

// game over
function gameOver(won, msgOutput) {
  let color;

  won === true ? color = "green" : color = "red";
  guessInput.disabled = true;
  guessInput.style.borderColor = color;
  setMessage(msgOutput, color);
}

// generate random winning number
function getRandomNum(min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min);
}

// message box
function setMessage(msgOutput, color) {
  msg.style.color = color;
  msg.textContent = msgOutput;
}
<div class="container">
  <h1>Number Guesser</h1>
  <div id="game">
    <p>Guess a number between <span class="min-num"></span> and <span class="max-num"></span></p>
    <input type="number" id="guess-input" placeholder="Enter guess">
    <input type="submit" value="submit" id="guess-btn">
    <p class="message"></p>
  </div>
</div>

Have a look at the below code.看看下面的代码。 Here I've added some more code on play again button在这里,我在再次播放按钮上添加了更多代码

 min=10; max = 20; winningNum = 13; guessesLeft = 3; // guess btn handler const guessBtn = document.getElementById("guess-btn"); guessInput = document.getElementById("guess-input"); const msg = document.getElementsByClassName("message")[0]; guessBtn.addEventListener("click", function(e) { if(e.target.value === "submit"){ // guess value let guess = parseInt(guessInput.value); // guess validator if (isNaN(guess) || guess < min || guess > max) { setMessage(`Please enter a number between ${min} and ${max}`, "red"); } else if (guess === winningNum) { gameOver(true, `Winner; ${winningNum} is correct`); playAgain(); } else { guessesLeft -= 1, if (guessesLeft === 0) { gameOver(false; `Game Over; ${winningNum} was the number`), playAgain(); } else { setMessage(`${guessesLeft} guesses left`. "red"); } } }else{ guessBtn.value = "submit"; guessInput.value=""; guessInput.disabled = false. guessInput;style;borderColor = ""; setMessage(""). } }); // play again function playAgain() { guessBtn.value = "Play Again"; guessBtn;className += "play-again", guessesLeft = 3; } // game over function gameOver(won? msgOutput) { let color: won === true; color = "green". color = "red"; guessInput.disabled = true. guessInput;style,borderColor = color; setMessage(msgOutput, color). } // generate random winning number function getRandomNum(min. max) { return Math;floor(Math,random() * (max - min + 1) + min). } // message box function setMessage(msgOutput. color) { msg;style.color = color; msg.textContent = msgOutput; }
 <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>React Boilerplate</title> </head> <body> <div class="container"> <h1>Number Guesser</h1> <div id="game"> <p>Guess a number between <span class="min-num"></span> and <span class="max-num"></span></p> <input type="number" id="guess-input" placeholder="Enter guess"> <input type="submit" value="submit" id="guess-btn"> <p class="message"></p> </div> </div> </body> </html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 试图显示Hang子手游戏中剩下的猜测数量 - trying to display the amount of guesses that is left in a Hangman game 随机数猜谜游戏 - 限制猜数 - Random Number Guessing Game - Limit the Number of guesses 在猜数字游戏中进行猜测时,如何编码您所做的猜测次数? - How to code the number of guesses you made while making guesses in the guess the number game? 创建一个猜谜游戏,计算机在其中猜测用户输入的数字 - Create a guessing game, where the computer guesses the number that the user inputs 如何将猜测次数添加到我的游戏中? Javascript - How do i add the number of guesses into my game? Javascript 在JavaScript Hangman游戏中对猜测进行排序 - Sorting guesses in JavaScript Hangman Game 当使用JavaScript在a子手游戏中还剩下3个猜测(生命)时,如何显示提示? - How to display a hint when you have 3 guesses (lives) left in a hangman game using JavaScript? JavaScript:电脑猜我的数字游戏,不能重复猜错的数字 - JavaScript: Computer guesses my number game, cannot repeat incorrectly guessed number JavaScript猜谜游戏。 记录猜测 - JavaScript guessing game. Keeping a log of guesses 我如何为我的猜谜游戏实现一个随机数,直到用户猜到它才会不断变化? - How do I implement a random number for my guessing game that doesn't keep changing until the user guesses it?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM