Listings 13.03 and 13.04 - Picking a question at random
JS Bin
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();
Listings 13.03 and 13.04 - Picking a question at random - 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 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();