2017-02-07 1 views
-1

내가 뭘하려는 건지 사용자가 아무런 제한없이 숫자를 입력 할 수있는 간단한 추측 게임이지만 추측 한 숫자를 기반으로 숫자를 정확하게 추측 할 때 점수가 매겨집니다. 그러나 숫자를 입력하고 단추를 여러 번 누르면 코드가 바뀌지 않더라도 힌트가 "높게"에서 "낮게"변경되어 번호가 올바르게 추측 될 때 표시되어야하는 메시지가 변경되지 않습니다. 전시. 여기에 내 코드가 있는데, 초보자이기 때문에 코드에 오류가있을 수밖에 없으며 모든 도움을받을 수 있습니다.자바 스크립트에서 추측 게임

<fieldset> 
    <input type="number" id="guess" /> 
    <button onClick="checknum();">Check Number</button> 
</fieldset> 

<fieldset> 
    <p>Your current status:</p> 
    <output id="status_output">You have yet to guess anything.</output> 
</fieldset> 

<script type="text/javascript"> 

    function checknum(){ 

     var randomNumber = Math.floor((Math.random() * 100) + 1); 
     var guessNumber = document.getElementById("guess").value; 
     //var guessNumber = parseInt(guess.value); 
     var statusOutput = document.getElementById('status_output'); 
     var counter = 0;  
     var isguessed = false; 

     do { 
      counter = (counter + 1) 
      if (guessNumber < randomNumber) { 
       statusOutput.value = ("Higher"); 
      } 
      else if (guessNumber > randomNumber) { 
       statusOutput.value = ("Lower"); 
      } 
      else if (guessNumber = randomNumber) { 
       set (isguessed = true()); 
       statusOutput.value = ("Correct" + mark()); 
      } 
     } 
     while (isguessed = false); 
    } 

    function mark(){ 
     if (counter < 10){ 
      statusOutput.value("Excellent"); 
     } 
     else if (counter > 10 && counter <20){ 
      statusOutput.value("Okay"); 
     } 
     else 
      statusOutput.value("Needs Practice"); 
    } 

</script> 
+0

'동안 (isguessed = false)를''해야합니다 동안 (true 또는 false 부울 표현 반환 : 거짓

isguessed === false에 isguessed varibles를 할당 isguessed === false);'(3은 1 대신에 동일합니다.) 마지막 else if 문과 동일한 문제입니다. – Keatinge

+0

두 함수 모두에서 ** statusOutput **을 사용하려는 경우 변수를 두 함수 밖에서 선언해야합니다. 그렇지 않으면'mark()'에 액세스 할 수 없습니다. 자바 스크립트 클로저 참조 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures – dommmm

+0

또한 ** statusOutput **에 값을 할당하는 두 가지 방법을 사용하고 있습니다. statusOutput.value = ("Higher") and'statusOutput.value ("Excellent");'. 첫 번째 방법은 정확합니다. 두 번째 방법은 값을 지정하는 'jquery'스타일이며 바닐라 자바 ​​스크립트에서는 작동하지 않습니다. 첫 번째 방법으로 문자열 주위에 괄호를 쓸 필요는 없습니다.'statusOutput.value = "Higher";' – dommmm

답변

0

잠시 동안 isguessed라는 변수에 false를 할당하고 있습니다. 대신 while (isguessed === false)을 원하십니까? 거짓

isguessed = false로 설정되어 isguessed 경우는 확인합니다 :