创建多项选择测验“游戏”

时间:2016-11-23 18:48:19

标签: javascript arrays

一些背景:我是一个几乎完全初学者,在我的业余时间学习编写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;

这显然会从整个变量中提供一组随机答案,而不是来自问题相应问题数组的一组答案。

有没有办法从同一个随机数返回问题和答案?

我没有找到这个问题的一个好答案的原因是,大多数测验问题都与测试有关,其中问题是按特定顺序给出的,而不是随机选择的问题。

非常感谢您的帮助。

我意识到这对你们中的一些人来说似乎很简单,所以我为此道歉。

2 个答案:

答案 0 :(得分:1)

这可能会让你开始。然后,您可以考虑是否将答案列在列表中,例如<ul>,是个好主意。然后,当您单击答案时会发生什么。

&#13;
&#13;
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();
&#13;
<div class="question">
  <h2 id="question">
  </h2>
   <h2 id="answers">
  </h2>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我想将随机数分配给var并返回测验问题并回答该变量。

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

同样可以用来回答答案。我不知道这是不是你的意图。