как работает следующий код, когда значение guessCount увеличивается каждый раз? - PullRequest
0 голосов
/ 15 апреля 2020

Здесь, в строке 48 (пометка 3 *), переменная с именем guessCount, ее начальное значение равно 1, затем в строке 53 () пометка 3 *, условие (guessCount === 1) выполняется, потому что начальное значение guessCount равно 1. Но после первого подсчета в строке 77 мы увеличиваем значение guessCount, а затем как условие (guessCount === 1) строки 53 остается верным и как этот код работает должным образом? когда, после в первый раз предположите, что countCount не 1, после приращения это будет 2,3,4,5,6,7,8,9 и 10 (если я прав) ....

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Number guessing game</title>
    <style>
      html {
        font-family: sans-serif;
      }      
      body {
        width: 50%;
        max-width: 800px;
        min-width: 480px;
        margin: 0 auto;
      }
      .lastResult {
        color: white;
        padding: 3px;
      }
    </style>
  </head>

  <body>
    <h1>Number guessing game</h1>

    <p>We have selected a random number between 1 and 100. See if you can guess it in 10 turns or fewer. We'll tell you if your guess was too high or too low.</p>

    <div class="form">
      <label for="guessField">Enter a guess: </label><input type="text" id="guessField" class="guessField">
      <input type="submit" value="Submit guess" class="guessSubmit">
    </div>

    <div class="resultParas">
      <p class="guesses"></p>
      <p class="lastResult"></p>
      <p class="lowOrHi"></p>
    </div>

    <script src="script.js">

      let randomNumber = Math.floor(Math.random() * 100) + 1;

      const guesses = document.querySelector('.guesses');
      const lastResult = document.querySelector('.lastResult');
      const lowOrHi = document.querySelector('.lowOrHi');
      const guessSubmit = document.querySelector('.guessSubmit');
      const guessField = document.querySelector('.guessField');
      let guessCount = 1; //***
      let resetButton;

      function checkGuess() {
          let userGuess = Number(guessField.value);
          if (guessCount === 1) {
            guesses.textContent = 'Previous guesses: ';
          }

          guesses.textContent += userGuess + ' ';

          if (userGuess === randomNumber) {
              lastResult.textContent = 'Congratulations! You got it right!';
              lastResult.style.backgroundColor = 'green';
              lowOrHi.textContent = '';
              setGameOver();
            } else if (guessCount === 10) {
              lastResult.textContent = '!!!GAME OVER!!!';
              lowOrHi.textContent = '';
              setGameOver();
            } else {
              lastResult.textContent = 'Wrong!';
              lastResult.style.backgroundColor = 'red';
              if(userGuess < randomNumber) {
                lowOrHi.textContent = 'Last guess was too low!' ;
              } else if(userGuess > randomNumber) {
                lowOrHi.textContent = 'Last guess was too high!';
              }

              guessCount++; ///****
              guessField.value = '';
              guessField.focus();
              }     
      }
      guessSubmit.addEventListener('click', checkGuess);

      function setGameOver() {
        guessField.disabled = true;
        guessSubmit.disabled = true;
        resetButton = document.createElement('button');
        resetButton.textContent = 'Start new game';
        document.body.appendChild(resetButton);
        resetButton.addEventListener('click', resetGame);
      }

      function resetGame() {
        guessCount = 1;
        const resetParas = document.querySelectorAll('.resultParas p');
        for(let i = 0 ; i < resetParas.length ; i++) {
          resetParas[i].textContent = '';
        }

        resetButton.parentNode.removeChild(resetButton);
        guessField.disabled = false;
        guessSubmit.disabled = false;
        guessField.value = '';
        guessField.focus();
        lastResult.style.backgroundColor = 'white';
        randomNumber = Math.floor(Math.random() * 100) + 1;
      }

    </script>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...