@@ -2,15 +2,34 @@ const grid = document.querySelector(".grid");
2
2
const mole = document . querySelectorAll ( ".mole" ) ;
3
3
const score = document . getElementById ( "score" ) ;
4
4
const timeLeft = document . getElementById ( "time-left" ) ;
5
+ const time = document . querySelector ( ".time" ) ;
5
6
6
7
let result = 0 ;
7
8
let currentTime = timeLeft . textContent ; //60
8
9
10
+ // ------ EVENT LISTENERS ------
11
+
9
12
window . addEventListener ( "DOMContentLoaded" , ( ) => {
10
13
createGrid ( ) ;
11
- randomSquare ( ) ;
14
+ let timerId = setInterval ( randomSquare , 500 ) ;
15
+ let countdown = setInterval ( ( ) => {
16
+ timeLeft . textContent = -- currentTime ;
17
+ if ( currentTime <= 0 ) {
18
+ time . textContent = "game over!" ;
19
+ grid . removeEventListener ( "mouseup" , whackMole ) ;
20
+ clearInterval ( countdown ) ;
21
+ clearInterval ( timerId ) ;
22
+ }
23
+ } , 1000 ) ;
12
24
} ) ;
13
25
26
+ grid . addEventListener ( "mouseup" , whackMole = ( e ) => {
27
+ if ( e . target . classList . contains ( "mole" ) ) {
28
+ result ++ ;
29
+ score . textContent = result ;
30
+ }
31
+ } )
32
+
14
33
// ------ METHODS ------
15
34
16
35
// method to create grid squares
@@ -33,9 +52,4 @@ randomSquare = () => {
33
52
}
34
53
let square = squares [ Math . floor ( Math . random ( ) * 9 ) ] ; // adding mole image at random position on the grid
35
54
square . classList . add ( "mole" ) ;
36
- square . addEventListener ( "click" , ( ) => {
37
- result ++ ;
38
- score . textContent = result ;
39
-
40
- } )
41
55
}
0 commit comments