generated from Czechitas-podklady-WEB/piskvorky
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhra.js
58 lines (50 loc) · 1.65 KB
/
hra.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
import { findWinner } from "https://unpkg.com/[email protected]";
let currentPlayer = "circle";
const gameBoxes = document.querySelectorAll(".game__box");
const clicking = (event) => {
const btn = event.target;
const playerSymbol = document.querySelector("#currentlyPlayingSymbol");
event.target.disabled = true;
if (currentPlayer === "circle") {
btn.classList.add("game__field--circle");
currentPlayer = "cross";
playerSymbol.setAttribute("src", "cross.svg");
playerSymbol.setAttribute("alt", "křížek");
} else if (currentPlayer === "cross") {
btn.classList.add("game__field--cross");
currentPlayer = "circle";
playerSymbol.setAttribute("src", "circle.svg");
playerSymbol.setAttribute("alt", "kolečko");
}
const gameField = [...gameBoxes].map((item) => {
if (item.classList.contains("game__field--circle")) {
return "o";
} else if (item.classList.contains("game__field--cross")) {
return "x";
} else {
return "_";
}
});
const returningWinner = () => {
const winner = findWinner(gameField);
if (winner === "o" || winner === "x") {
alert(`Vyhrál hráč se symbolem "${winner.toUpperCase()}"!`);
location.reload();
} else if (winner === "tie") {
alert("Hra skončila nerozhodně.");
}
};
setTimeout(returningWinner, 500);
};
const leaveConfirm = (event) => {
const confirmation = confirm("Opravdu chceš začít znovu?");
if (confirmation !== true) {
event.preventDefault();
}
};
gameBoxes.forEach((box) => {
box.addEventListener("click", clicking);
});
document
.querySelector(".game__link--restart")
.addEventListener("click", leaveConfirm);