2017-11-09 5 views
-1

プログラムは0から1500の間の乱数を生成し、それをrndnumに格納し、10の推測値を持つと、ゲームは数値が高いか低いかを知らせます。あなたが演奏を始めるとき、一番上に「あなたの数字は0(lownum)と1500(highnum)の間です」と書かれています。GuessGame if/else logic

数値が< = 1000と推測され、正しい答えが高い場合、プログラムは数値がパラメータの間にあることを認識していますが、上記のテキストは同じままです。

if (inputnum.value > lownum && inputnum.value < rndnum) { 
    lownum = inputnum.value 
} else if (inputnum.value < highnum && inputnum.value > rndnum) { 
    highnum = inputnum.value 
} 
choosedif.innerHTML = "Your number is between " + lownum + " and " + highnum; 

EDIT:完全なコード(https://pastebin.com/VtaFMVS8

+1

あなたのコードにブレークポイントを配置し、行単位で、それを検査起こって、どこであなたの仮定が間違っているものを参照することであろうための最良の選択肢。デバッガの使用方法を学ぶことは大きな投資です。 – kryger

答えて

0

私はつもり推測だし、あなたはそれが複数回実行されることを期待したときにしか、このアクションを一度に実行していると言います。与えられたコードスニペットには何も問題はありませんが、それは完全な話を伝えません。

残念なことに、ブラウザに何をしていつ行うのかを明示的に伝える必要があります。あなたが指示しない限り、HTMLは自動的に更新されません。 JavascriptのDOM操作の側面は主にイベント駆動型システムです。

ボタンを押したり、入力ボックスの値を変更したり、機能を実行するために発生する可能性のある何らかのトリガーが必要になります。以下の例では、changeValue関数をボタンのonClick eventにバインドしています。そのボタンがクリックされ、そのボタンがクリックされると、changeValue関数はコードスニペットを実行し、それによってhtmlを更新します。

// set up initial numbers 
 
lownum = 0; 
 
highnum = 1000; 
 
rndnum = Math.floor(Math.random()*highnum) 
 
// get elements 
 
inputnum = document.querySelector("#inputnum") 
 
choosedif = document.querySelector("#choosedif") 
 

 
function changeValue(){ 
 
    if (inputnum.value > lownum && inputnum.value < rndnum) { 
 
     lownum = inputnum.value 
 
    } else if (inputnum.value < highnum && inputnum.value > rndnum) { 
 
     highnum = inputnum.value 
 
    } 
 
    inputnum.value = "" // clear input box 
 
    choosedif.innerHTML = "Your number is between " + lownum + " and " + highnum; 
 
} 
 

 
changeValue();
<input id="inputnum" type="number"/> 
 
<button onclick="changeValue()">Guess</button> 
 
<div id="choosedif"></div>

+0

私はあなたが提案したものを試しましたが、私はまだ同じ結果を得ています。何が問題になるのかを完全なコードで確認できますか?私は低い値が999を超えることができず、高い値は1000を下回ることができないことを発見しました。https://pastebin.com/VtaFMVS8 –

+0

私はあなたが何を意味するか分かりません。私はあなたの完全なコードをここでテストしました:https://jsfiddle.net/Lh7zLsrw/そして、すべてが正常に動作するようです。中位の設定では、私は999より低い値と1000より低い値を得ることができました。しかし、それはもともと質問していたものとは異なる質問であるようです。新しい質問を開くことを検討し、他の人があなたを助けることができるかもしれません。 –