1
+ let basket = document . getElementById ( 'basket' ) ;
2
+ let object = document . getElementById ( 'object' ) ;
3
+ let scoreDisplay = document . getElementById ( 'score' ) ;
4
+ let gameContainer = document . getElementById ( 'gameContainer' ) ;
5
+ let score = 0 ;
6
+ let objectFallingSpeed = 2 ;
7
+ let gameWidth = gameContainer . offsetWidth ;
8
+ let basketWidth = basket . offsetWidth ;
9
+
10
+ window . addEventListener ( 'keydown' , function ( event ) {
11
+ let basketLeft = basket . offsetLeft ;
12
+ if ( event . key === 'ArrowLeft' && basketLeft > 0 ) {
13
+ basket . style . left = ( basketLeft - 20 ) + 'px' ;
14
+ } else if ( event . key === 'ArrowRight' && basketLeft < ( gameWidth - basketWidth ) ) {
15
+ basket . style . left = ( basketLeft + 20 ) + 'px' ;
16
+ }
17
+ } ) ;
18
+
19
+ function dropObject ( ) {
20
+ let objectLeft = Math . floor ( Math . random ( ) * ( gameWidth - object . offsetWidth ) ) ;
21
+ object . style . left = objectLeft + 'px' ;
22
+ object . style . top = '-30px' ;
23
+ let fallingInterval = setInterval ( function ( ) {
24
+ let objectTop = object . offsetTop ;
25
+ object . style . top = objectTop + objectFallingSpeed + 'px' ;
26
+ let basketLeft = basket . offsetLeft ;
27
+ let basketTop = basket . offsetTop ;
28
+ if ( objectTop + object . offsetHeight >= basketTop &&
29
+ objectTop + object . offsetHeight <= basketTop + basket . offsetHeight &&
30
+ objectLeft + object . offsetWidth >= basketLeft &&
31
+ objectLeft <= basketLeft + basketWidth ) {
32
+ clearInterval ( fallingInterval ) ;
33
+ score += 1 ;
34
+ scoreDisplay . innerText = 'Score: ' + score ;
35
+ if ( score % 10 === 0 ) {
36
+ changeColors ( ) ;
37
+ }
38
+ if ( score % 10 === 0 ) {
39
+ increaseSpeed ( ) ;
40
+ }
41
+ dropObject ( ) ;
42
+ }
43
+ if ( objectTop > gameContainer . offsetHeight ) {
44
+ clearInterval ( fallingInterval ) ;
45
+ alert ( 'Game Over! Final Score: ' + score ) ;
46
+ resetGame ( ) ;
47
+ }
48
+ } , 20 ) ;
49
+ }
50
+
51
+ function getRandomColor ( ) {
52
+ const letters = '0123456789ABCDEF' ;
53
+ let color = '#' ;
54
+ for ( let i = 0 ; i < 6 ; i ++ ) {
55
+ color += letters [ Math . floor ( Math . random ( ) * 16 ) ] ;
56
+ }
57
+ return color ;
58
+ }
59
+
60
+ function changeColors ( ) {
61
+ const randomBasketColor = getRandomColor ( ) ;
62
+ const randomObjectColor = getRandomColor ( ) ;
63
+ const randomBorderColor = getRandomColor ( ) ;
64
+ basket . style . backgroundColor = randomBasketColor ;
65
+ object . style . backgroundColor = randomObjectColor ;
66
+ gameContainer . style . borderColor = randomBorderColor ;
67
+ }
68
+
69
+ function increaseSpeed ( ) {
70
+ objectFallingSpeed += 0.5 ;
71
+ }
72
+
73
+ function resetGame ( ) {
74
+ score = 0 ;
75
+ objectFallingSpeed = 3 ;
76
+ scoreDisplay . innerText = 'Score: ' + score ;
77
+ dropObject ( ) ;
78
+ }
79
+
80
+ dropObject ( ) ;
0 commit comments