-
Notifications
You must be signed in to change notification settings - Fork 4
/
script.js
107 lines (94 loc) · 2.44 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
var colors = [];
var numSquares = 6;
var sqrList = document.querySelectorAll(".square");
var pickedColor;
var colorDisplay = document.querySelector("#curColor");
var resultDisplay = document.querySelector("#result");
var header = document.querySelector("#header");
var reset = document.querySelector("#reset");
var modeButtons = document.querySelectorAll(".mode");
var score = 0;
var total = 0;
var scoreDisplay = document.querySelector("#won");
var totalDisplay = document.querySelector("#total")
init();
function init(){
setUpModeButtons();
setUpSquareBox();
resetPage();
}
function setUpSquareBox(){
for(var i = 0;i<sqrList.length;i++){
sqrList[i].addEventListener("click",function(){
total++;
if(this.style.backgroundColor!=pickedColor){
alert("Wrong choice!");
this.style.backgroundColor = "black";
resultDisplay.textContent = "Try Again!"
}
else{
score++;
alert("correct");
resultDisplay.textContent = "Correct!"
reset.textContent = "Play Again?";
changeColors(pickedColor);
}
scoreDisplay.textContent = score;
totalDisplay.textContent = total;
});
}
}
function setUpModeButtons(){
for(var i = 0;i<modeButtons.length;i++){
modeButtons[i].addEventListener("click",function(){
modeButtons[0].classList.remove("selected");
modeButtons[1].classList.remove("selected");
this.classList.add("selected");
if(this.textContent=="Easy")
numSquares = 3;
else
numSquares = 6;
resetPage();
});
}
}
function resetPage(){
colors = generateRandomColors(numSquares);
pickedColor = pickColor();
colorDisplay.textContent = pickedColor;
for(var i =0;i<sqrList.length;i++){
if(colors[i]){
sqrList[i].style.display = "block";
sqrList[i].style.backgroundColor = colors[i];
}
else
sqrList[i].style.display = "none";
}
header.style.backgroundColor = "steelblue";
resultDisplay.textContent = "";
reset.textContent = "New Colors";
}
reset.addEventListener("click",function(){
resetPage();
});
function changeColors(color){
for(var i =0;i<sqrList.length;i++){
sqrList[i].style.backgroundColor = color;
}
header.style.backgroundColor = color;
}
function pickColor(){
var rand = Math.floor(Math.random()*colors.length);
return colors[rand];
}
function generateRandomColors(num){
var arr = [];
for(var i =0;i<num;i++){
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
var res = "rgb("+r+", "+g+", "+b+")";
arr.push(res);
}
return arr;
}