Get Programming with JavaScript - Listing 13.15

Listing 13.15 - Random quiz questions with two global variables

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();

Further Adventures

Listing 13.15 - Random quiz questions with two global variables - Tasks 4 & 5

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();