Listing 13.15 - Random quiz questions with two global variables
JS Bin
var getQuiz = function () {
var qIndex = 0;
var questions = [
{ question: "7 x 8", answer: "56" },
{ question: "12 x 12", answer: "144" },
{ question: "5 x 6", answer: "30" },
{ question: "9 x 3", answer: "27" }
];
var getQuestion = function () {
qIndex = between(0, questions.length - 1);
return questions[qIndex].question;
};
var checkAnswer = function (userAnswer) {
if (userAnswer === questions[qIndex].answer) {
return "Correct!";
} else {
return "No, the answer is " + questions[qIndex].answer;
}
};
return {
quizMe: getQuestion,
submit: checkAnswer
};
};
var quiz = getQuiz();
Listing 13.15 - Random quiz questions with two global variables - Tasks 4 & 5
- Update the program so that it keeps a score of correct answers.
- Define a showScore function that displays the current score.
var getQuiz = function () {
var qIndex = 0;
var qCount = 0;
var qCorrect = 0;
var questions = [
{ question: "7 x 8", answer: "56" },
{ question: "12 x 12", answer: "144" },
{ question: "5 x 6", answer: "30" },
{ question: "9 x 3", answer: "27" }
];
var getQuestion = function () {
qIndex = between(0, questions.length - 1);
return questions[qIndex].question;
};
var checkAnswer = function (userAnswer) {
qCount += 1;
if (userAnswer === questions[qIndex].answer) {
qCorrect += 1;
return "Correct!";
} else {
return "No, the answer is " + questions[qIndex].answer;
}
};
var showScore = function () {
return qCorrect + " out of " + qCount;
};
return {
quizMe: getQuestion,
submit: checkAnswer,
score: showScore
};
};
var quiz = getQuiz();