Skip to content

Commit 7c0ee39

Browse files
committed
30 done wooooo
1 parent acd21fc commit 7c0ee39

2 files changed

Lines changed: 85 additions & 1 deletion

File tree

30 - Whack A Mole/index-RIO.html

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Whack A Mole!</title>
6+
<link href='https://fonts.googleapis.com/css?family=Amatic+SC:400,700' rel='stylesheet' type='text/css'>
7+
<link rel="stylesheet" href="style.css">
8+
</head>
9+
<body>
10+
11+
<h1>Whack-a-mole! <span class="score">0</span></h1>
12+
<button onClick="startGame()">Start!</button>
13+
14+
<div class="game">
15+
<div class="hole hole1">
16+
<div class="mole"></div>
17+
</div>
18+
<div class="hole hole2">
19+
<div class="mole"></div>
20+
</div>
21+
<div class="hole hole3">
22+
<div class="mole"></div>
23+
</div>
24+
<div class="hole hole4">
25+
<div class="mole"></div>
26+
</div>
27+
<div class="hole hole5">
28+
<div class="mole"></div>
29+
</div>
30+
<div class="hole hole6">
31+
<div class="mole"></div>
32+
</div>
33+
</div>
34+
35+
<script>
36+
const holes = document.querySelectorAll('.hole');
37+
const scoreBoard = document.querySelector('.score');
38+
const moles = document.querySelectorAll('.mole');
39+
let lastHole = null
40+
let score = 0
41+
42+
function randTime(min, max) {
43+
return Math.round(min + Math.random() * (max - min))
44+
}
45+
46+
function randHole(hls) {
47+
const i = Math.floor(Math.random() * hls.length)
48+
const hole = hls[i]
49+
lastHole = hole
50+
return hole
51+
}
52+
53+
function peep() {
54+
const time = randTime(200, 1200)
55+
const holesArray = Array.from(holes).filter(h => h !== lastHole)
56+
const hole = randHole(holesArray)
57+
58+
hole.classList.add('up')
59+
setTimeout(() => {
60+
hole.classList.remove('up')
61+
if (!timeUp) peep()
62+
}, time)
63+
}
64+
65+
function startGame() {
66+
scoreBoard.textContent = 0
67+
timeUp = false
68+
score = 0
69+
peep()
70+
setTimeout(() => timeUp = true, 10000)
71+
}
72+
73+
function bonk(e) {
74+
console.log(this.parentElement.classList, this.parentElement.classList.contains('up'))
75+
if (!e.isTrusted) return
76+
score++
77+
this.parentElement.classList.remove('up')
78+
scoreBoard.textContent = score
79+
}
80+
81+
moles.forEach(mole => mole.addEventListener('click', bonk))
82+
</script>
83+
</body>
84+
</html>

30 - Whack A Mole/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ h1 {
6161
top: 100%;
6262
width: 100%;
6363
height: 100%;
64-
transition:all 0.4s;
64+
transition:all 0.2s;
6565
}
6666

6767
.hole.up .mole {

0 commit comments

Comments
 (0)