2016-12-06 10 views
1

У меня есть программа, которая случайным образом генерирует два числа (x и y) и просит пользователя их умножить. Как только они будут их умножать, они скажут им, правильно ли они или неправильно. У меня проблемы с тем, что если они вернут ответ, он должен сгенерировать новый набор чисел. Я не уверен, как заставить программу снова выполнять эту функцию. Также он должен очистить поле ответа независимо от того, правильно ли оно или неправильно. Благодаря!JavaScript, если ответ верен, генерирует новую строку

var x, y; // global variables for randomly generated numbers 
var correct = ['Very good!', 'Excellent!', 'Correct - Nice work!', 'Correct - Keep up the good work!']; 
var incorrect = ['No. please try again.', 'Wrong. Try once more.', 'Incorrect - Dont give up!', 'No - Keep trying.']; 

// getting two random numbers between 1-12 then assigning them to x and y 

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

// generating the question that will be used with the random numbers x and y 
function genQuestion() { 
    generateNumbers(); 
    document.getElementById('question').value = x + " times " + y; 
} 

// function that is performed when the button "check answer" is clicked. It will generate one of 4 answers depending 
//if it's right or wrong and will add 1 to the value of total. If it's incorrect it won't add anything 
function buttonPressed() { 
    var correctans = correct[Math.floor(Math.random() * 4)]; // randomly selecting an answer if it's correct 
    var incorrectans = incorrect[Math.floor(Math.random() * 4)]; // randomly selecting an answer if it's incorrect 
    var answer = document.getElementById('answer').value; 

    if (answer == x * y) // correct 
     { 
      function genQuestion() { 
       generateNumbers(); 
       document.getElementById('question').value = x + " times " + y; 
      } 
      window.alert(correctans); 
      var total = document.getElementById('total').value++; 
     } 
    else {    // incorrect 
     window.alert(incorrectans); 
    } 
} 

ответ

1

Вы не вызываете функцию genQuestion, и нет смысла переопределять ее.

// function that is performed when the button "check answer" is clicked. It will generate one of 4 answers depending 
//if it's right or wrong and will add 1 to the value of total. If it's incorrect it won't add anything 
function buttonPressed() { 
    var correctans = correct[Math.floor(Math.random() * 4)]; // randomly selecting an answer if it's correct 
    var incorrectans = incorrect[Math.floor(Math.random() * 4)]; // randomly selecting an answer if it's incorrect 
    var answer = document.getElementById('answer').value; 

    if (answer == x * y) // correct 
     { 
      //call genQuestion to create new question 
      genQuestion(); 
      window.alert(correctans); 
      var total = parseInt(document.getElementById('total').value)++; 
     } 
    else {    // incorrect 
     window.alert(incorrectans); 
    } 
    //clear 'answer' field 
    document.getElementById('answer').value = ''; 
} 
+0

Помогли, спасибо! – rozak

 Смежные вопросы

  • Нет связанных вопросов^_^