2016-11-23 17 views
0

Некоторые предпосылки: я начинаю учиться писать в HTML/CSS/JavaScript в свободное время. Пожалуйста, будьте нежны. :)Создание многопользовательской викторины выбора «игра»

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

Я создаю игру викторины, которая просит пользователя сопоставить случайное выбранное английское слово с одним из четырех шведских слов. Я ударил маленькую замину: я не знаю, как обеспечить, чтобы я выбирал ответы на викторину, соответствующие этому вопросу.

Я написал следующее переменный:

var quiz = [ 
    {question: 'yes', answers: ['ja', 'förlåt', 'brör', 'samtal'], correct: 0}, 
    {question: 'sorry', answers: ['att försöka', 'förlåt', 'ingen', 'vår'], correct: 1} 
]; 

И эту функцию:

function engQuestion() { 
    return quiz[Math.floor(Math.random() * quiz.length)].question; 
} 

В HTML, у меня есть это:

<div class="question"> 
    <h2> 
    <script> 
     document.write(engQuestion()); 
    </script> 
    </h2> 
</div> 

Это моя отправная точка. Я пытаюсь выяснить, как я могу получить правильный набор ответов, которые соответствуют моему вопросу из переменной. Если я пишу:

return quiz[Math.floor(Math.random() * quiz.length)].answers; 

Это, очевидно, дает случайный набор ответов от всех переменного, а не набора ответов из соответствующего массива вопросов в вопросе.

Есть ли способ вернуть оба вопроса и ответы от одного и того же случайного числа?

Причина, по которой я не нашел хорошего ответа на этот вопрос, заключается в том, что большинство вопросов викторины относятся к тесту, в котором вопросы задаются в определенном порядке, а не в произвольном порядке.

Большое спасибо за любую помощь.

Я понимаю, что это кажется довольно простым для некоторых из вас, поэтому я извиняюсь за это.

+0

Вы должны сохранить текущее случайное число так, получая ответы, принадлежащие тоже вопрос. Попробуйте сохранить его в переменной, cookie или локальном хранилище. – thekodester

ответ

0

Я предполагаю, что случайное число задает вопрос var и return quiz и отвечает с этой переменной.

var ran_num = //random number 
return quiz[ran_num].question 

То же самое можно использовать для ответа. Я не знаю, было ли это то, что вы намеревались.

1

Это может заставить вас начать. Затем вы можете рассмотреть вопрос о том, следует ли перечислять ответы в списке, например. <ul>, было бы неплохо. Затем, когда вы нажмете на ответ.

var quiz = [ 
 
    {question: 'yes', answers: ['ja', 'förlåt', 'brör', 'samtal'], correct: 0}, 
 
    {question: 'sorry', answers: ['att försöka', 'förlåt', 'ingen', 'vår'], correct: 1} 
 
]; 
 

 
var engQuestion = function() { 
 
    
 
    let randomNumber = Math.floor(Math.random() * quiz.length) 
 
    
 
    let question = quiz[randomNumber].question 
 
    let answers = quiz[randomNumber].answers 
 
    
 
    document.getElementById('question').innerHTML= question 
 
    document.getElementById('answers').innerHTML= answers 
 

 
} 
 

 
engQuestion();
<div class="question"> 
 
    <h2 id="question"> 
 
    </h2> 
 
    <h2 id="answers"> 
 
    </h2> 
 
</div>

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