Skip to content

Commit

Permalink
Merge pull request #68 from ashtongraves/master
Browse files Browse the repository at this point in the history
Randomizes question order
  • Loading branch information
sparkz9502 authored May 5, 2021
2 parents 361e207 + 011ee23 commit b818e18
Showing 1 changed file with 39 additions and 21 deletions.
60 changes: 39 additions & 21 deletions quiz.html
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,15 @@ <h2 data-i18n="quiz_loading" style="text-align:center;" id="question-number">Loa
maxA = maxB = maxC = maxD = maxE = maxF = maxG = 0
let a, b, c, d, e, f, g // User's scores
a = b = c = d = e = f = g = 0
let qn = 0 // Question number
let qn = [] // Array of question numbers
let qi = 0 // Question index
populateQn()
let prevAnswer = null

function initQuestion () {
document.getElementById('question-text').innerHTML = i18n.getString(`question_${qn}`)
document.getElementById('question-text').innerHTML = i18n.getString(`question_${qn[qi]}`)
document.getElementById('question-number').innerHTML = i18n.getString('quiz_question_of', {
count: qn + 1,
count: qi + 1,
total: Object.size(questions)
})
if (prevAnswer == null) {
Expand All @@ -74,16 +76,16 @@ <h2 data-i18n="quiz_loading" style="text-align:center;" id="question-number">Loa
}

function nextQuestion (mult) { // eslint-disable-line no-unused-vars
a += mult * questions[`question_${qn}`].a
b += mult * questions[`question_${qn}`].b
c += mult * questions[`question_${qn}`].c
d += mult * questions[`question_${qn}`].d
e += mult * questions[`question_${qn}`].e
f += mult * questions[`question_${qn}`].f
g += mult * questions[`question_${qn}`].g
qn++
a += mult * questions[`question_${qn[qi]}`].a
b += mult * questions[`question_${qn[qi]}`].b
c += mult * questions[`question_${qn[qi]}`].c
d += mult * questions[`question_${qn[qi]}`].d
e += mult * questions[`question_${qn[qi]}`].e
f += mult * questions[`question_${qn[qi]}`].f
g += mult * questions[`question_${qn[qi]}`].g
qi++
prevAnswer = mult
if (qn < Object.size(questions)) {
if (qn[qi] < Object.size(questions)) {
initQuestion()
} else {
results()
Expand All @@ -94,14 +96,14 @@ <h2 data-i18n="quiz_loading" style="text-align:center;" id="question-number">Loa
if (prevAnswer == null) {
return
}
qn--
a -= prevAnswer * questions[`question_${qn}`].a
b -= prevAnswer * questions[`question_${qn}`].b
c -= prevAnswer * questions[`question_${qn}`].c
d -= prevAnswer * questions[`question_${qn}`].d
e -= prevAnswer * questions[`question_${qn}`].e
f -= prevAnswer * questions[`question_${qn}`].f
g -= prevAnswer * questions[`question_${qn}`].g
qi--
a -= prevAnswer * questions[`question_${qn[qi]}`].a
b -= prevAnswer * questions[`question_${qn[qi]}`].b
c -= prevAnswer * questions[`question_${qn[qi]}`].c
d -= prevAnswer * questions[`question_${qn[qi]}`].d
e -= prevAnswer * questions[`question_${qn[qi]}`].e
f -= prevAnswer * questions[`question_${qn[qi]}`].f
g -= prevAnswer * questions[`question_${qn[qi]}`].g
prevAnswer = null
initQuestion()
}
Expand All @@ -110,6 +112,22 @@ <h2 data-i18n="quiz_loading" style="text-align:center;" id="question-number">Loa
return (100 * (max + score) / (2 * max)).toFixed(1)
}

function populateQn() {
// Fill with incrementing numbers representing question numbers.
for (let questionCount = 0; questionCount < Object.size(questions); questionCount++) {
qn.push(questionCount)
}
// Shuffle qn
for (let currentIndex = Object.size(questions) - 1; currentIndex > 0; currentIndex--) {
randomIndex = Math.floor(Math.random() * currentIndex)

// Swap question order
let temp = qn[currentIndex]
qn[currentIndex] = qn[randomIndex]
qn[randomIndex] = temp
}
}

function results () {
window.location.href = 'results.html' +
`?a=${calcScore(a, maxA)}` +
Expand All @@ -135,4 +153,4 @@ <h2 data-i18n="quiz_loading" style="text-align:center;" id="question-number">Loa
</script>
</body>

</html>
</html>

0 comments on commit b818e18

Please sign in to comment.