3 files changed +147
-0
lines changed Original file line number Diff line number Diff line change
1
+ const squares = document . querySelectorAll ( ".square" ) ;
2
+ const timeLeft = document . querySelector ( "#time-left" ) ;
3
+ const score = document . querySelector ( "#score" ) ;
4
+
5
+ let result = 0 ;
6
+ let hitPosition ;
7
+ let currentTime = 60 ;
8
+ let timerId = null ;
9
+
10
+ function randomSquare ( ) {
11
+ squares . forEach ( ( square ) => {
12
+ square . classList . remove ( "emoji" ) ;
13
+ } ) ;
14
+
15
+ let randomSqaure = squares [ Math . floor ( Math . random ( ) * 9 ) + 1 ] ;
16
+ randomSqaure . classList . add ( "emoji" ) ;
17
+ hitPosition = randomSqaure . id ;
18
+ }
19
+
20
+ squares . forEach ( ( square ) => {
21
+ square . addEventListener ( "mousedown" , ( ) => {
22
+ if ( square . id == hitPosition ) {
23
+ result ++ ;
24
+ score . textContent = result ;
25
+ hitPosition = null ;
26
+ }
27
+ } ) ;
28
+ } ) ;
29
+
30
+ function moveEmoji ( ) {
31
+ timerId = setInterval ( randomSquare , 500 ) ;
32
+ }
33
+
34
+ moveEmoji ( ) ;
35
+
36
+ function countDown ( ) {
37
+ currentTime -- ;
38
+ timeLeft . textContent = currentTime ;
39
+
40
+ if ( currentTime == 0 ) {
41
+ clearInterval ( countDownTimerId ) ;
42
+ clearInterval ( timerId ) ;
43
+ alert ( `Game Over! Your final Score Is ${ result } ` ) ;
44
+ }
45
+ }
46
+
47
+ let countDownTimerId = setInterval ( countDown , 1000 ) ;
Original file line number Diff line number Diff line change
1
+ < html lang ="en ">
2
+ < head >
3
+ < meta charset ="UTF-8 " />
4
+ < meta http-equiv ="X-UA-Compatible " content ="IE=edge " />
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
6
+ < title > Emoji Catcher Game</ title >
7
+ < link rel ="stylesheet " href ="style.css " />
8
+ </ head >
9
+ < body >
10
+ < div class ="scores-container ">
11
+ < div class ="total-score ">
12
+ < h2 > Your Score:</ h2 >
13
+ < h2 id ="score "> 0</ h2 >
14
+ </ div >
15
+
16
+ < div class ="time ">
17
+ < h2 > Time left:</ h2 >
18
+ < h2 id ="time-left "> 60</ h2 >
19
+ </ div >
20
+ </ div >
21
+
22
+ < div class ="grid-container ">
23
+ < div class ="grid ">
24
+ < div class ="square " id ="1 "> </ div >
25
+ < div class ="square " id ="2 "> </ div >
26
+ < div class ="square " id ="3 "> </ div >
27
+ < div class ="square " id ="4 "> </ div >
28
+ < div class ="square " id ="5 "> </ div >
29
+ < div class ="square " id ="6 "> </ div >
30
+ < div class ="square " id ="7 "> </ div >
31
+ < div class ="square " id ="8 "> </ div >
32
+ < div class ="square " id ="9 "> </ div >
33
+ < div class ="square " id ="10 "> </ div >
34
+ </ div >
35
+ </ div >
36
+
37
+ < script src ="app.js "> </ script >
38
+ </ body >
39
+ </ html >
Original file line number Diff line number Diff line change
1
+ body {
2
+ background : rgb (10 , 10 , 10 );
3
+ color : # fff ;
4
+ font-family : sans-serif;
5
+ }
6
+
7
+ .scores-container {
8
+ display : flex;
9
+ justify-content : center;
10
+ align-items : center;
11
+ }
12
+
13
+ .total-score {
14
+ margin-right : 20px ;
15
+ margin : 20px ;
16
+ text-align : center;
17
+ background : # ccc ;
18
+ padding : 20px ;
19
+ color : # 000 ;
20
+ }
21
+
22
+ .time {
23
+ margin-right : 20px ;
24
+ margin : 20px ;
25
+ text-align : center;
26
+ background : # ccc ;
27
+ padding : 20px ;
28
+ color : # 000 ;
29
+ }
30
+
31
+ .grid-container {
32
+ display : flex;
33
+ justify-content : center;
34
+ align-items : center;
35
+ }
36
+
37
+ .grid {
38
+ width : 90% ;
39
+ height : 90% ;
40
+ display : flex;
41
+ flex-wrap : wrap;
42
+ justify-content : center;
43
+ align-items : center;
44
+ background-color : rgb (36 , 36 , 36 );
45
+ margin-top : 2rem ;
46
+ padding : 20px ;
47
+ }
48
+
49
+ .square {
50
+ height : 200px ;
51
+ width : 200px ;
52
+ margin : 10px ;
53
+ background : rgb (61 , 61 , 61 );
54
+ }
55
+
56
+ /* JavaScript */
57
+ .emoji {
58
+ background-image : url ("https://i.guim.co.uk/img/media/a1b7129c950433c9919f5670c92ef83aa1c682d9/55_344_1971_1183/master/1971.jpg?width=1200&height=900&quality=85&auto=format&fit=crop&s=88ba2531f114b9b58b9cb2d8e723abe1" );
59
+ background-position : center;
60
+ background-size : cover;
61
+ }
0 commit comments