Skip to content

Commit a27e5ff

Browse files
committed
1 parent 0330331 commit a27e5ff

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

30 - Whack A Mole/index-START.html

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<body>
1010

1111
<h1>Whack-a-mole! <span class="score">0</span></h1>
12+
<h1>Timer:<span class="timer"></span></h1>
1213
<button onClick="startGame()">Start!</button>
1314

1415
<div class="game">
@@ -36,6 +37,56 @@ <h1>Whack-a-mole! <span class="score">0</span></h1>
3637
const holes = document.querySelectorAll('.hole');
3738
const scoreBoard = document.querySelector('.score');
3839
const moles = document.querySelectorAll('.mole');
40+
const timer = document.querySelector('.timer');
41+
let currPeep;
42+
43+
moles.forEach(mole => {
44+
mole.addEventListener('click', () => {
45+
if (mole.dataset.recentlyClicked === "true") {
46+
return
47+
}
48+
mole.dataset.recentlyClicked = true;
49+
mole.parentNode.classList.remove('up');
50+
scoreBoard.innerHTML = Number(scoreBoard.innerHTML) + 1;
51+
setTimeout(() => {
52+
mole.dataset.recentlyClicked = false;
53+
}, 400);
54+
})
55+
});
56+
57+
const startGame = () => {
58+
peep(getRandomHole());
59+
startTimer(10);
60+
}
61+
62+
const startTimer = (seconds) => {
63+
timer.innerHTML = seconds;
64+
let countdown = setInterval(() => {
65+
seconds -= 1;
66+
timer.innerHTML = seconds;
67+
if (seconds <= 0) {
68+
holes.forEach(hole => {
69+
hole.classList.remove('up');
70+
})
71+
clearTimeout(currPeep);
72+
clearInterval(countdown);
73+
}
74+
}, 1000)
75+
}
76+
77+
const getRandomHole = () => {
78+
return Math.floor(Math.random() * 6) + 1
79+
};
80+
81+
82+
const peep = (randomNumber) => {
83+
let currHole = document.querySelector(`.hole${randomNumber}`);
84+
currHole.classList.add('up');
85+
currPeep = setTimeout(() => {
86+
currHole.classList.remove('up');
87+
peep(getRandomHole())
88+
}, Math.floor(Math.random() * 1250) + 500);
89+
}
3990

4091
</script>
4192
</body>

0 commit comments

Comments
 (0)