【问题标题】:Number guessing game. Number of Guesses made. [duplicate]猜数字游戏。做出的猜测数。 [复制]
【发布时间】:2016-02-01 20:00:03
【问题描述】:

我想创建一个数字游戏,用户输入一个 1-100 的数字,脚本将尝试在 10 次中猜测用户的输入。如果在 10 次之内,它猜对了它就获胜,否则用户获胜。到目前为止,我让它正常工作,除了我在尝试让它显示游戏结束时的猜测次数时遇到问题。因此,例如,如果进行了 10 次猜测,则应该显示“猜测次数:10”或猜测次数:5”(如果猜测为 5)。

window.guessNum = function () {
    document.getElementById("result").innerHTML = "";
    var guesses = 10;
    var input = parseInt(document.getElementById("numberGuess").value);
    do {
        var randomNum = Math.floor(Math.random() * 100) + 1;
         
        document.getElementById("result").innerHTML += "I'll guess " + randomNum + " <br />";
        if (input == randomNum) {
        document.getElementById("result").innerHTML += "Our numbers match. I win!! :)<br /><br />";
        guesses = 0;
       }
       if (input < randomNum) {
       document.getElementById("result").innerHTML += "Your input is less than the number I'm thinking about. <br /><br />";
       } else if (input > randomNum) {
       document.getElementById("result").innerHTML += "Your input is greater than the number I'm thinking about.<br /><br />";
       }
       guesses = guesses - 1;
       }
       while (guesses > 0);
       if (input != randomNum) {
       document.getElementById("result").innerHTML += "I can't figure it out. I guess you win!<br /><br />";
       }
       document.getElementById("result").innerHTML += "Number of guesses: " +guesses+ " <br />";
    }
<h1>Number Game</h1>
<div id="mainCont">
  <p>Number:
    <input type="text" id="numberGuess">
    <input type="button" onclick="guessNum();" value="Guess">
  </p>
  <div id="guess"></div>
  <div id="result"></div>
</div>

【问题讨论】:

  • 请编辑您之前的问题以进行改进,而不是重新发布。

标签: javascript html


【解决方案1】:

当比赛发生时,您可以从 loop break loop

window.guessNum = function () {
    document.getElementById("result").innerHTML = "";
    var guesses = 10;
    var input = parseInt(document.getElementById("numberGuess").value);
    do {
        guesses = guesses - 1;
        var randomNum = Math.floor(Math.random() * 100) + 1;
         
        document.getElementById("result").innerHTML += "I'll guess " + randomNum + " <br />";
        if (input == randomNum) {
        document.getElementById("result").innerHTML += "Our numbers match. I win!! :)<br /><br />";
        break;
       }
       if (input < randomNum) {
       document.getElementById("result").innerHTML += "Your input is less than the number I'm thinking about. <br /><br />";
       } else if (input > randomNum) {
       document.getElementById("result").innerHTML += "Your input is greater than the number I'm thinking about.<br /><br />";
       }

       }
       while (guesses > 0);
       if (input != randomNum) {
       document.getElementById("result").innerHTML += "I can't figure it out. I guess you win!<br /><br />";
       }
       document.getElementById("result").innerHTML += "Number of guesses: " +(10-guesses)+ " <br />";
    }
<h1>Number Game</h1>
<div id="mainCont">
  <p>Number:
    <input type="text" id="numberGuess">
    <input type="button" onclick="guessNum();" value="Guess">
  </p>
  <div id="guess"></div>
  <div id="result"></div>
</div>

【讨论】:

  • 如果您希望更改猜测的最大数量,您必须记住更改打印,否则您最终将打印 10 个猜测(如果更改为高于 10 的值)。
  • 打破是个好建议! :]
【解决方案2】:

您打印的是您留下的猜测数量,而不是做出的猜测数量。

【讨论】:

    【解决方案3】:

    您正在打印的计数器是您计算剩下的猜测数量的计数器。不要尝试打印猜测的数量,而是添加另一个计数器,在其中增加每个 do 重复的值,然后在完成后打印。

    在以下三处添加guessesMade

    window.guessNum = function () {
        document.getElementById("result").innerHTML = "";
        var guesses = 10;
    
        var guessesMade = 0;
    
        var input = parseInt(document.getElementById("numberGuess").value);
    
        do {
            guessesMade++;
    
            var randomNum = Math.floor(Math.random() * 100) + 1;
    
            document.getElementById("result").innerHTML += "I'll guess " + randomNum + " <br />";
            if (input == randomNum) {
                document.getElementById("result").innerHTML += "Our numbers match. I win!! :)<br /><br />";
                guesses = 0;
            }
    
            if (input < randomNum) {
                document.getElementById("result").innerHTML += "Your input is less than the number I'm thinking about. <br /><br />";
            } else if (input > randomNum) {
                document.getElementById("result").innerHTML += "Your input is greater than the number I'm thinking about.<br /><br />";
            }
    
            guesses = guesses - 1;
        }
        while (guesses > 0);
    
        if (input != randomNum) {
            document.getElementById("result").innerHTML += "I can't figure it out. I guess you win!<br /><br />";
        }
    
        document.getElementById("result").innerHTML += "Number of guesses: " +guessesMade+ " <br />";
    }
    

    jsfiddle http://jsfiddle.net/dpbkv6pp/

    【讨论】:

    • 谢谢大家!欣赏它。
    猜你喜欢
    • 2023-04-04
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多