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)); // ํด๋ฆญํ–ˆ์„๋•Œ ๋‘๋”์ง€ ์žกํžˆ๊ฒŒ ์‹คํ–‰ ์‹œ์ผœ์คŒ 

Last updated