πŸ“”
web_study
  • JavaScript
  • μ—˜λ¦¬_μžλ°”μŠ€ν¬λ¦½νŠΈ
    • μžλ°”μŠ€ν¬λ¦½νŠΈ κΈ°λ³Έ
      • 클래슀 μ˜ˆμ œμ™€ μ½œλ°±ν•¨μˆ˜
      • μ—°μ‚°μž boolean
      • ν•¨μˆ˜ μ •μ˜, 호좜 그리고 콜백
      • λ³€μˆ˜νƒ€μž…κ³Ό object 차이점
    • JavaScript async 와 await
    • JavaScript Promise
    • μžλ°”μŠ€ν¬λ¦½νŠΈ callback
    • μžλ°”μŠ€ν¬λ¦½νŠΈ json
    • μœ μš©ν•œ 10κ°€μ§€ λ°°μ—΄ ν•¨μˆ˜λ“€
    • μžλ°”μŠ€ν¬λ¦½νŠΈ λ°°μ—΄(array)
    • μžλ°”μŠ€ν¬λ¦½νŠΈ object
    • μžλ°”μŠ€ν¬λ¦½νŠΈ (class vs object) 객체지ν–₯ μ–Έμ–΄
    • μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜
    • μžλ°”μŠ€ν¬λ¦½νŠΈ μ—°μ‚°.반볡문
    • λ°μ΄ν„°νƒ€μž…, data types, let vs var, hoisting
    • script async 와 defer의 차이점 μ½˜μ†” 좜λ ₯
    • μžλ°”μŠ€ν¬λ¦½νŠΈμ—­μ‚¬
  • μƒν™œμ½”λ”©
    • μž¬κ·€ν•¨μˆ˜
    • μ •κ·œ ν‘œν˜„μ‹
    • 객체지ν–₯
      • 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°
      • μƒμ„±μžμ™€ new
      • 전역객체
      • this
      • 상속
      • prototype
      • ν‘œμ€€ λ‚΄μž₯ 객체의 ν™•μž₯
      • object
      • 데이터 νƒ€μž…
      • μ°Έμ‘°
    • ν•¨μˆ˜μ§€ν–₯
      • μœ νš¨λ²”μœ„
      • κ°’μœΌλ‘œμ„œμ˜ ν•¨μˆ˜μ™€ 콜백
      • ν΄λ‘œμ €
      • arguments
      • ν•¨μˆ˜μ˜ 호좜
    • UI API, λ¬Έμ„œ
    • λͺ¨λ“ˆ
    • 객체
    • λ°°μ—΄
    • ν•¨μˆ˜
    • 반볡문
    • 쑰건문
    • μˆ«μžμ™€λ¬Έμž
    • λ³€μˆ˜
    • 비ꡐ
  • λ…Έλ§ˆλ“œ 코더
    • Getting the Weather part One Geolocation
    • Image Background
    • TO DO List
    • Saving the User Name
    • Clock part One
    • 쑰건문 ( if , else, and, or)
    • evnet handlers
    • Function
    • Objects
    • Arrays
    • Variable(λ³€μˆ˜!)
    • Javascript
  • javascript30
    • Dram Kit
    • clock
    • Css Javascript
    • Array Cardio
    • flex panels
    • type ahead
    • Canvas Draw
    • Speech Synthesis
    • Whack A Mole
  • web standard
    • script λΆ€λΆ„
    • formλΆ€λΆ„
    • μ›Ήμ ‘κ·Όμ„±
    • <meta>
  • μžλ°”μŠ€ν¬λ¦½νŠΈ_이둠
    • 기본지식(JAVASCRIPT)
    • 기본지식(CSS)
    • 기본지식(HTML)
    • 기본지식(HTTP)
    • Dom
    • 라이브러리, ν”„λ ˆμž„μ›Œν¬, ν”Œλ‘œκ·ΈμΈ
Powered by GitBook
On this page

Was this helpful?

  1. javascript30

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>
PreviousSpeech SynthesisNextscript λΆ€λΆ„

Last updated 3 years ago

Was this helpful?