Get Programming with JavaScript - Listings 13.03 and 13.04

Listings 13.03 and 13.04 - Picking a question at random

HTML:

<!-- Number Generator --> <script src="http://output.jsbin.com/qezoce.js"></script>

JS:

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

Listings 13.03 and 13.04 - Picking a question at random - Tasks 4 & 5

var getQuiz = function () { var qIndex = 0; var numAsked = 0; var numCorrect = 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 () { numAsked += 1; qIndex = between(0, questions.length - 1); return questions[qIndex].question; }; var checkAnswer = function (userAnswer) { if (userAnswer === questions[qIndex].answer) { numCorrect += 1; return "Correct!"; } else { return "No, the answer is " + questions[qIndex].answer; } }; var showScore = function () { return "Your score is " + numCorrect + " out of " + numAsked; }; return { quizMe: getQuestion, submit: checkAnswer, score: showScore }; }; var quiz = getQuiz();