-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
112 lines (101 loc) · 3.11 KB
/
index.js
File metadata and controls
112 lines (101 loc) · 3.11 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
let numSquares = 6;
let colors = [];
let pickedColor;
let squares = document.querySelectorAll('.square');
let colorDisplay = document.querySelector('#colorDisplay');
let message = document.querySelector('#message');
let header = document.querySelector('.jumbotron');
let resetBtn = document.querySelector('#reset');
let modeBtn = document.querySelectorAll('.mode');
init();
function init() {
//-----------mode buttons event listeners
setupModeButtons();
setupSquares();
reset();
}
//---------------------------------SETUP MODE BUTTONS
function setupModeButtons() {
for (let i = 0; i < modeBtn.length; i++) {
modeBtn[i].addEventListener('click', function () {
modeBtn[0].classList.remove('selected');
modeBtn[1].classList.remove('selected');
this.classList.add('selected');
this.textContent === 'EASY' ? (numSquares = 3) : (numSquares = 6);
reset();
});
}
}
//---------------------------------SETUP SQUARES
function setupSquares() {
for (let i = 0; i < squares.length; i++) {
//add click listeners to squares
squares[i].addEventListener('click', function () {
//grab color of clicked squares
//compare color to picked square
const clickedColor = this.style.background;
if (clickedColor === pickedColor) {
message.textContent = 'Correct';
message.style.background = '#3aaa6d';
changeColors(clickedColor);
header.style.background = clickedColor;
resetBtn.textContent = 'Play Again?';
} else {
message.textContent = 'Try Again';
this.style.background = '#232323';
}
});
}
}
//------------------------reset() function....
function reset() {
//generte all new colors
colors = generateRandomColors(numSquares);
//pick a new random colors
pickedColor = pickColor();
//change color display to match picked color
colorDisplay.textContent = pickedColor;
// change colors of squares
for (let 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';
}
}
resetBtn.textContent = 'NEW COLORS';
header.style.background = '#3aaa6d';
message.textContent = '';
message.style.background = '';
}
//-----------------------------------------------RESET BUTTON
resetBtn.addEventListener('click', () => reset());
function changeColors(color) {
//loop through all squares
for (let i = 0; i < squares.length; i++) {
squares[i].style.background = color;
}
}
function pickColor() {
//pick a random color
const random = Math.floor(Math.random() * colors.length);
return colors[random];
}
function generateRandomColors(num) {
//make an array
const colors = [];
//add num random colors to array
for (let i = 1; i <= num; i++) {
colors.push(randomColors());
}
//retrun array
return colors;
}
function randomColors() {
const red = Math.floor(Math.random() * 256);
const green = Math.floor(Math.random() * 256);
const blue = Math.floor(Math.random() * 256);
return `rgb(${red}, ${green}, ${blue})`;
}
console.log('HAVE A NICE DAY!!!');