2016-12-06 19 views
0

私はJavaScriptを完全に使いこなしており、実際にはいくつかの助けを得ることができます。私はランダムに1と12の間の2つの数値を生成し、それらをテキストフィールドに格納するJavaScriptでプログラムを作成する必要があります。これらの2つの数値はグローバル変数で、テキストフィールド文字列を "x回y"(xとyはランダムに生成された数値)として表示する関数に送られます。また、正しい答えに入力された回答を比較するためにwindow.alertを使用する確認応答ボタンがあり、回答に応じて表示されるメッセージになります。私はそれをあまり勉強していないので、コードの欠如をお詫びしますが、クラスの割り当てのために役立つものは本当に役に立ちます。ありがとうございました!JavaScriptランダムな乗算ジェネレータ

var x, y; 
 

 
    function aNumber(x, y) { 
 
     Math.floor((Math.random() * 12) + 1); 
 
     Math.floor((Math.random() * 12) + 1); 
 
     return x, y; 
 
    } 
 

 

 
    function genQuestion(x, y) { 
 
     document.getElementById('question').value = aNumber(x) + "times" + aNumber(y); 
 
    }
<body> 
 
    <h1>Learning Multiplication</h1> 
 
    <form name="myForm" id="myForm" action="#"> 
 
     <label>What is: </label> 
 
     <input id="question" name="question" type="text" /> 
 
     <br> 
 
     <label>The answer is: </label> 
 
     <input id="answer" name="answer" type="text" /> 
 
     <br> 
 
     <label>Correct answers: </label> 
 
     <input id="total" name="total" type="text" /> 
 
    <br> 
 
<button class = "button" name="button" type="button" value="Check answer" onclick="genQuestion()" /> 
 
    </form> 
 
</body>

+0

ヒント:あなたの関数 'aNumber(X、Y)'関数に渡される値と同じ値を返します。 'Math.floor((Math.random()* 12)+ 1);'の結果は、どの変数にも代入されません。また、 "aNumber"ではなく2つの値を返すので、その関数の命名について考えると思います。 – lxxxvi

答えて

1

あなたはxyの新しい値を生成し、新しいボタンを、生成することができまず。あなたの関数名aFunctionは意味がありません。関数名は、generateNumbersのようにしてください。

この関数は、xyの2つの新しい値を生成します。

これで、警告とメッセージを確認します。

var x, y; 
 
    
 
function generateNumbers() { 
 
    function getRandom12() { 
 
     return Math.floor((Math.random() * 12) + 1); 
 
    } 
 
    x = getRandom12(); 
 
    y = getRandom12(); 
 
} 
 

 
function genQuestion() { 
 
    generateNumbers(); 
 
    document.getElementById('question').value = x + " times " + y; 
 
    document.getElementById('answer').value = ''; 
 
    document.getElementById('total').value = ''; 
 
} 
 

 
function checkAnswer() { 
 
    alert(
 
     x * y === +document.getElementById('answer').value ? 
 
     'Great!' : 
 
     'Not Yet!.' 
 
    ); 
 
    document.getElementById('total').value = x * y; 
 
} 
 

 
genQuestion(); // needed for the first time, could be later an event.
<h1>Learning Multiplication</h1> 
 
<form name="myForm" id="myForm" action="#"> 
 
    <label>What is:</label> 
 
    <input id="question" name="question" type="text" /><br> 
 
    <label>The answer is:</label> 
 
    <input id="answer" name="answer" type="text" /><br> 
 
    <label>Correct answers:</label> 
 
    <input id="total" name="total" type="text" /><br> 
 
    <button class="button" name="button" type="button" onclick="genQuestion()" >Generate new Question</button> 
 
    <button class="button" name="button" type="button" onclick="checkAnswer()" >Check answer</button> 
 
</form>

+0

ありがとうございました!それで、数字がランダムに生成されることを考慮して、正解か正解かを確認するにはどうしたらいいですか?彼らがそうでなかったら私はあなたが 'if'ステートメントを作ることができると思うでしょうが、それは多くのifステートメントになるでしょう... – rozak

+0

@rozak、それはただ1つの' if'ステートメントです。編集を参照してください。 –