2016-03-16 2 views
0

Я создал веб-страницу и использовал JavaScript, чтобы задать 5 вопросов по математике, однако я бы хотел изменить свой код, чтобы я мог генерировать вопросы с использованием случайных чисел. Я уверен, что я должен использовать функцию Math.random, но я не совсем уверен. Вот мой текущий код:Генерировать случайные вопросы

<!DOCTYPE html> 
<html> 
<body> 
    <h1>A Simple Maths Game!</h1> 

    <p>Welcome to an awesome maths game! Your aim is simple, just answer all maths questions that you see! <br> Goodluck!</p> 

    <script> 

    // Maths question 1 

    var userAnswer; 
    userAnswer = prompt("1. 4 + 5"); 

    if (userAnswer == 9){ 
     document.write("1. 4 + 5 = <span class = 'correct'" + userAnswer + "</span> correct"); 
     // document.write("\n"); 
     document.write("<br>"); 
    } 
    else{ 
     document.write("1. 4 + 5 = <span class = 'incorrect'" + userAnswer + "</span> incorrect"); 
     document.write("<br>"); 
    } 

    // Maths question 2 

    var userAnswer; 
    userAnswer = prompt("2. 19 + 4"); 

    if (userAnswer == 23){ 
     document.write("2. 19 + 4 = <span class = 'correct'" + userAnswer + "</span> correct"); 
     document.write("<br>"); 
     } 
    else{ 
     document.write("2. 19 + 4 = <span class = 'incorrect'" + userAnswer + "</span> incorrect"); 
     document.write("<br>"); 
    } 

    // Maths question 3 

    var userAnswer; 
    userAnswer = prompt("3. 5 x 5"); 

    if (userAnswer == 25){ 
     document.write("3. 5 x 5 = <span class = 'correct'" + userAnswer + "</span> correct"); 
     document.write("<br>"); 
    } 
    else{ 
     document.write("3. 5 x 5 = <span class = 'incorrect'" + userAnswer + "</span> incorrect"); 
     document.write("<br>"); 
    } 

    // Maths question 4 

    var userAnswer; 
    userAnswer = prompt("4. 7 x 5"); 
    if (userAnswer == 35){ 
     document.write("4. 7 x 5 = <span class = 'correct'" + userAnswer + "</span> correct"); 
     document.write("<br>"); 
    } 
    else{ 
     document.write("4. 7 x 5 = <span class = 'incorrect'" + userAnswer + "</span> incorrect"); 
     document.write("<br>"); 
    } 

    // Maths question 5 

    var userAnswer; 
    userAnswer = prompt("5. 8 x 8"); 
    if (userAnswer == 64){ 
     document.write("5. 8 x 8 = <span class = 'correct'" + userAnswer + "</span> correct"); 
     document.write("<br>"); 
    } 
    else{ 
     document.write("5. 8 x 8 = <span class = 'incorrect'" + userAnswer + "</span> incorrect"); 
     document.write("<br>"); 
    } 


    </script> 
</html> 

Заранее благодарю за любую помощь.

+0

Я пропущу вашу попытку в коде для интеграции переменных результатов и переменных вопросов (независимо от того, как вы являются генными используя эти случайные числа). Кроме того, почему бы вам не использовать 'Math.random()'. Вы сказали, что не уверены. Почему это? В личной заметке я также хотел бы порекомендовать вам отформатировать ваши вопросы по-другому: вы задаете вопрос «1. 4 + 5' и ожидать девять. Вы уверены, что никто не ответит «6.4»? – Ralph

+0

Кроме того, 'document.write' имеет всевозможные проблемы. Старайтесь избегать этого в будущих проектах. –

ответ

2

Вы можете генерировать случайные числа, делать математику, чтобы получить ответ ваш ожидать, а затем сравнить ожидаемый ответ с фактическим ответом пользователя:

var a = Math.floor(Math.random() * 10); // A number between 0 and 10 
var b = Math.floor(Math.random() * 10); // Another number between 0 and 10 

var expectedAnswer = a + b; 

var answer = prompt(a + " + " + b); 

if (answer == expectedAnswer) 
    alert('Good job !'); 
else 
    alert('Wrong answer :()'); 

Demo

Конечно, это простой пример с добавками, но вы можете пойти дальше и использовать одну и ту же случайную систему, чтобы выбрать такую ​​операцию, как вычитание и т. д.

+0

Подробнее о номерах, созданных при случайном посещении https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random –

+0

Хотя ваш ответ отчасти верен, вы можете ясно видеть, что есть умножение в вопросе. Для этого это не сработает. – icecub

+0

Я даю совет и предлагаю способ решить проблему, не указывая код для конкретной программы OP. С моей точки зрения, это философия SO – bviale