2016-12-06 3 views
0

Ich bin völlig neu in JavaScript und könnte wirklich etwas Hilfe verwenden. Ich muss ein Programm in JavaScript erstellen, das zufällig zwei Zahlen zwischen 1 und 12 generiert und sie in einem Textfeld speichert. Diese beiden Zahlen sind globale Variablen und werden an eine Funktion gesendet, die die Textfeldfolge als "x mal y" anzeigt (x und y sind die zufällig generierten Zahlen). Es sollte auch eine Check-Antwort-Taste haben, die window.alert verwendet, um die eingegebene Antwort mit der richtigen Antwort zu vergleichen, und es wird eine Nachricht angezeigt, die von der Antwort abhängt, die sie geben. Ich habe nicht viel getan, also entschuldige ich mich für den Mangel an Code, aber jede Hilfe wäre wirklich hilfreich, da es sich um eine Klassenaufgabe handelt. Vielen Dank!JavaScript Zufällige Mathematik Multiplikation Generator

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

Hinweis: Ihre Funktion 'aNumber (x, y)' gibt die gleichen Werte, die in die Funktion übergeben werden. Die Ergebnisse von Math.floor ((Math.random() * 12) + 1); 'sind keiner Variablen zugeordnet. Außerdem würde ich über die Benennung dieser Funktion nachdenken, da sie 2 Werte zurückgibt, nicht "aNumber". – lxxxvi

Antwort

1

allererst Sie eine neue Schaltfläche erzeugen könnte, die für x und y neue Werte erzeugt. Ihr Funktionsname aFunction ist ein bisschen bedeutungslos und sollte einen Namen haben, was die Funktion macht, wie generateNumbers.

Diese Funktion erzeugt zwei neue Werte für x und y.

Jetzt prüft es die Antwort und warnt eine Nachricht.

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

Danke für die Hilfe! Also, wie würde ich versuchen, die Antwort richtig oder falsch zu überprüfen, wenn man bedenkt, dass die Zahlen zufällig generiert werden? Wenn das nicht der Fall wäre, würde ich annehmen, dass man einfach "if" -Aussagen machen könnte, aber das wäre eine Menge von if-Anweisungen ... – rozak

+0

@rozak, es ist nur eine "if" -Anweisung. Bitte siehe Bearbeiten. –