Whack A Mole
const holes = document.querySelectorAll('.hole');
const scoreBoard = document.querySelector('.score');
const moles = document.querySelectorAll('.mole');
let lastHole;
let timeUp = false; // κ²μμ΄ λλ¬λμ§λ₯Ό μλ €μ£Όλ λ³μ timeUpμ false κ° μ§μ
let score = 0; // μ μνμ μ μ νμμ μ μλ₯Ό μ μ₯ν score λ³μλ₯Ό 0μΌλ‘ μ΄κΈ°ν
function randomTime(min, max) {
return Math.round(Math.random() * (max - min) + min);
}
function randomHole(holes) {// κ΅¬λ© κ°―μ λ§νΌ λλ€μΌλ‘ λμ¬ κ΅¬λ©μ κ²°μ ν΄μ€
const idx = Math.floor(Math.random() * holes.length);
const hole = holes[idx];
if (hole === lastHole) {
return randomHole(holes);
}
lastHole = hole;
return hole;
}
function peep() {
const time = randomTime(100, 800); // λλμ§ λμ¬ μκ° λ¬΄μμλ‘ κ³μ°
const hole = randomHole(holes); // λλμ§ λμ¬ κ΅¬λ© λ¬΄μμλ‘ κ³μ°
hole.classList.add('up'); // λλμ§κ° λμ¬ κ΅¬λ©μ up ν΄λμ€λ₯Ό μΆκ°
setTimeout(() => {
hole.classList.remove('up'); //setTimeout( ) λ©μλλ₯Ό μ¬μ©ν΄ 무μμ μκ° μ΄ν λλμ§κ° λμ¬ κ΅¬λ©μμ up ν΄λμ€λ₯Ό μ κ±°
if (!timeUp) peep(); //κ²μμ΄ λλμ§ μμλ€λ©΄ peep( ) ν¨μλ₯Ό λ€μ μ€ν3
}, time);
}
function startGame() {
scoreBoard.textContent = 0;
timeUp = false;
peep();
setTimeout(() => timeUp = true, 10000) // 10μ΄ ν κ²μ μ’
λ£
}
function bonk(e) { // νμ΄λμ¨ λλμ§ μ‘κΈ°
if (!e.isTrusted) return; // cheater!
this.parentNode.classList.remove('up'); // μ΄λ²€νΈ λ°μν μμμ up ν΄λ μ€ μ κ±°
score++; // μ μλ₯Ό μ μ₯νλ λ³μ scoreμ +1
scoreBoard.textContent = score; // μ μνμ textContentλ₯Ό scoreλ‘ μ§μ
}
moles.forEach(mole => mole.addEventListener('click', bonk)); // ν΄λ¦νμλ λλμ§ μ‘νκ² μ€ν μμΌμ€
<h1>Whack-a-mole! <span class="score">0</span></h1>
<button onClick="startGame()">Start!</button>
<div class="game">
<div class="hole hole1">
<div class="mole"></div>
</div>
<div class="hole hole2">
<div class="mole"></div>
</div>
<div class="hole hole3">
<div class="mole"></div>
</div>
<div class="hole hole4">
<div class="mole"></div>
</div>
<div class="hole hole5">
<div class="mole"></div>
</div>
<div class="hole hole6">
<div class="mole"></div>
</div>
</div>
Last updated
Was this helpful?