-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
61 lines (58 loc) · 1.49 KB
/
script.js
File metadata and controls
61 lines (58 loc) · 1.49 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
let turnO = true;
let btnBox = document.querySelectorAll('.btn-box')
let reset = document.querySelector('.reset')
let msg = document.querySelector('.msg')
btnBox.forEach((box) => {
box.addEventListener('click', () => {
if (box.innerHTML === "")
if (turnO) {
box.innerHTML = "O";
turnO = false
}
else {
box.innerHTML = "X";
turnO = true
}
checkWinner();
})
})
reset.addEventListener('click', () => {
btnBox.forEach((box) => {
box.innerHTML = ""
box.disabled = false
msg.innerHTML = ""
})
}
)
let winPatterns = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6],
];
const checkWinner = () => {
for (i = 0; i < winPatterns.length; i++) {
const [a, b, c] = winPatterns[i]
const valA = btnBox[a].innerText;
const valB = btnBox[b].innerText;
const valC = btnBox[c].innerText;
if (valA != "" && valB != "" && valC != "") {
if (valA === valB && valB === valC) {
msg.append("Winner is: ", valA)
disableBox()
}
}
}
if ([...btnBox].every(box => box.innerText !== "")) {
msg.append("It's a draw!");
}
}
const disableBox = () => {
btnBox.forEach((box) => {
box.disabled = true
})
}