-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
135 lines (119 loc) · 3.56 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
var score,
high_score,
colours = ['#b200b2', 'orange', '#228B22'];
window.onload = function(){
score = 0;
if(!!document.cookie) {
high_score = parseInt(document.cookie.substring(11, 12));
}
else {
high_score = 0;
document.cookie = 'high_score=' + 0 + '; ';
}
setBodyBackgroundColor();
setNumbers(generateEquationNumbers());
document.getElementById('answer_correct').onclick = function(){
checkAnswerCorrect() ? nextRound() : gameOver(false);
};
document.getElementById('answer_false').onclick = function(){
checkAnswerCorrect() ? gameOver(false) : nextRound();
};
};
function nextRound() {
clearTimeout(timeout);
clearInterval(elapseTimer);
setScore();
setNumbers(generateEquationNumbers());
runTimer();
}
function setBodyBackgroundColor() {
var colour = Math.floor((Math.random() * 3));
document.body.style.backgroundColor = colours[colour];
}
var elapseTimer,
timeout,
number1,
number2,
sum,
sumTrue;
function runTimer() {
timer_bar = document.getElementById('timer_elapsed');
timer_bar.style.width = '100%';
elapseTimer = window.setInterval(function(){
switch(timer_bar.style.width) {
case '100%':
timer_bar.style.width = '66.6%';
break;
case '66.6%':
timer_bar.style.width = '33.3%';
break;
case '33.3%':
timer_bar.style.width = '0%';
break;
default:
timer_bar.style.width = '100%';
break;
}
}, 1000);
timeout = window.setTimeout(function(){
gameOver(true);
}, 3100);
};
function generateEquationNumbers() {
var numbers = [];
// 1st number
numbers.push(Math.floor((Math.random() * 5) + 1));
// 2nd number
numbers.push(Math.floor((Math.random() * 5) + 1));
// sum
var sumOrRandom = Math.floor((Math.random() * 3) + 1);
sumOrRandom === 1 ?
numbers.push(numbers[0] + numbers[1]) :
numbers.push(Math.floor((Math.random() * 10) + 1));
return numbers;
};
function setNumbers(numbersArray) {
// set global values
number1 = numbersArray[0];
number2 = numbersArray[1];
sum = numbersArray[2];
(number1 + number2) === sum ? sumTrue = true : sumTrue = false;
// edit page values
document.getElementById("first_number").innerHTML = number1;
document.getElementById("second_number").innerHTML = number2;
document.getElementById("sum").innerHTML = sum;
}
function setScore() {
score++;
document.getElementById('score').innerHTML = score;
}
function checkAnswerCorrect() {
if(sumTrue) {
return true;
}
else {
return false;
}
}
function gameOver(ranOutOfTime) {
clearTimeout(timeout);
clearInterval(elapseTimer);
//set game over text
ranOutOfTime ?
document.getElementById('game_over_text').innerHTML = 'Time Out' :
document.getElementById('game_over_text').innerHTML = 'Game Over';
// disable buttons
document.getElementById('answer_correct').disabled = true;
document.getElementById('answer_false').disabled = true;
// set time out text
document.getElementById('new_score').innerHTML = score;
if(score > high_score) {
document.getElementById('best_score').innerHTML = score;
// write cookie
document.cookie = 'high_score=' + score + '; ';
}
else {
document.getElementById('best_score').innerHTML = high_score;
}
document.getElementById('time_out').style.display = 'inherit';
};