-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
73 lines (66 loc) · 1.98 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
const tikus = document.querySelectorAll('div.tikus');
const mulai = document.querySelector('button');
const skorGame = document.querySelector('.skor-tampil span:first-child');
const waktuGamePapan = document.querySelector('.skor-tampil span:last-child');
const whack = document.querySelectorAll('.whack');
// variable
let skor;
let waktuGame;
let selesai;
let gameJalan = false;
// memunculkan tikus
function waktuMuncul(min, max) {
return Math.round(Math.random() * (max - min) + min);
}
function tikusMuncul(tikus) {
let nomorRandom = tikus[Math.floor(Math.random() * tikus.length)];
let wMuncul = waktuMuncul(400, 700);
tikus.forEach(valTikus => {
valTikus.addEventListener('click', tambahSkor);
});
!nomorRandom.classList.contains('keluar')
? nomorRandom.classList.add('keluar')
: tikusMuncul(tikus);
setTimeout(function () {
nomorRandom.classList.remove('keluar');
if (!selesai) {
tikusMuncul(tikus);
}
}, wMuncul);
}
// mulai game
function mulaiGame() {
if (gameJalan == false) {
skor = 0;
skorGame.innerText = skor;
waktuGame = 15;
waktuGamePapan.innerText = waktuGame;
selesai = false;
tikusMuncul(tikus);
let wSekarang = setInterval(function () {
waktuGame--;
waktuGamePapan.innerText = waktuGame;
}, 1000);
setTimeout(function () {
selesai = true;
clearInterval(wSekarang);
}, 15000);
setTimeout(function () {
alert(`Skor Anda ${skor}\nYour Score ${skor}`);
gameJalan = false;
}, 16000);
}
gameJalan = true;
}
function pukulAudio(whack) {
let randomAudio = whack[Math.floor(Math.random() * whack.length)];
return randomAudio.play();
}
// skor game
function tambahSkor() {
skor++;
skorGame.innerText = skor;
pukulAudio(whack);
this.removeEventListener('click', tambahSkor);
this.classList.remove('keluar');
}