-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy pathcolorGame.js
More file actions
133 lines (112 loc) · 2.82 KB
/
colorGame.js
File metadata and controls
133 lines (112 loc) · 2.82 KB
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
var colors = [];
var pickedColor;
var numSquares = 6;
var squares = document.querySelectorAll(".square");
var colorDisplay = document.getElementById("colorDisplay");
var messageDisplay = document.getElementById("message")
var h1 = document.querySelector("h1");
var resetButton = document.getElementById("reset");
var modeButton = document.querySelectorAll(".mode");
// loading the page
init()
function init()
{
modeButtonListener();
squareListener();
reset();
}
function squareListener()
{
//setting up our squares
for(var i = 0; i < squares.length; i++)
{
squares[i].addEventListener("click",function()
{
//grab color of picked square.
var clickedColor = this.style.background;
if (clickedColor === pickedColor)
{
h1.style.background = clickedColor;
//change all squares to match the clicked color
changeColor(clickedColor);
messageDisplay.textContent = "Correct";
//reset button
resetButton.textContent = "Play Again?"
}
else
{
this.style.background = "#232323";
messageDisplay.textContent = "Try Again";
}
});
}
}
function modeButtonListener()
{
//loop tru the buttons mode
for (var i = 0; i<modeButton.length; i++)
{
modeButton[i].addEventListener("click", function()
{
modeButton[0].classList.remove("selected");
modeButton[1].classList.remove("selected");
this.classList.add("selected");
//figure how many squares to display
this.textContent === "Easy" ? numSquares = 3: numSquares = 6;
reset()
//pick new color
});
}
}
function reset()
{
colors = generateRandomColors(numSquares);
pickedColor = pickColor();
colorDisplay.textContent = pickedColor;
h1.style.background = "steelblue"
messageDisplay.textContent = "";
resetButton.textContent="new colors";
for (var i = 0; i < squares.length; i++)
{
if(colors[i])
{
squares[i].style.display = "block";
squares[i].style.background = colors[i];
}
else{squares[i].style.display = "none";}
}
}
resetButton.addEventListener("click", function(){reset();});
function changeColor(color)
{
for(var i = 0; i < squares.length; i++)
{
// loop tru squares and change each color to match a given color
squares[i].style.background = color;
}
}
function pickColor()
{
//form a random number and return the index of the color array
var random = Math.floor(Math.random() * colors.length);
//position of the sqaure color
return colors[random ];
}
function generateRandomColors(num)
{
var arr = []
for(var i =0; i < num; i++)
{
//get random color and push into arra
arr.push(randomColor());
}
return arr;
}
function randomColor()
{
// pick a red from o to 255 etc...
var r =Math.floor(Math.random() * 256);
var g =Math.floor(Math.random() * 256);
var b =Math.floor(Math.random() * 256);
return "rgb(" + r + ", " + g + ", " + b + ")";
}