2015-11-02 151 views
-1

我想创建一个数字游戏,用户输入一个1-100的数字,并且脚本会尝试猜测用户的输入。如果在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>

+0

请编辑您的上一个问题以改进,而不是重新发布。 – Bergi

回答

0

你。正在打印你所剩的猜测数量而不是猜测的数量

0

你正在打印的计数器是你计算你已经离开的猜测的数量的计数器而不是试图打印数量猜测作出增加另一个计数器,你增加每个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/

+0

谢谢大家!欣赏它。 – user1776479

0

你可以从breakloop比赛时发生这样的事情:

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>

+0

如果您希望更改最大猜测数量,则必须记住更改打印数,否则最终将打印10次猜测(如果您更改为高于10的值)。 –

+0

然而,打破是一个很好的建议! :] –