본문 바로가기
공부기록/실습

3월 15일 야구 전광판 만들기

by project100 2023. 3. 16.

야구 전광판 만들기

1. 스트라이크 3개면 아웃 1개 카운트

이때 스트라이크와 볼 카운트는 0으로 초기화

2. 볼 4개면 스트라이크와 볼 카운트 0으로 초기화

3. 아웃카운트 3개면 스트라이크, 볼 버튼 비활성화

요소.disabled = true; // 비활성화

요소.disabled = false; //활성화

4. 아웃카운트 3개면 재시작 버튼 보임

요소를 보이게 하는 법 : 요소.style.display = "inline";

요소를 숨기는 법 : 요소.style.display = "none";

5. 재시작 버튼을 누르면 스트라이크, 볼 버튼 활성화

모든 카운트는 0으로 초기화, 재시작 버튼 숨김

 

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>야구 전광판</title>
</head>

<body>
    <button id="strike">Strike</button>
    <button id="ball">Ball</button>
    <button id="restart" style="display:none">재시작</button>
    <br>
    S:<b id="s">0</b><br>
    B:<b id="b">0</b><br>
    O:<b id="o">0</b><br>
</body>
<script>
    const st = document.querySelector("#strike");
    const ba = document.querySelector("#ball");
    const re = document.querySelector("#restart");
    const cs = document.querySelector("#s");
    const cb = document.querySelector("#b");
    const co = document.querySelector("#o");

    let sn = 0;
    let bn = 0;
    let on = 0;

    st.addEventListener("click", () => {
        sn++;
        cs.innerHTML = sn;

        if (sn >= 3) {
            alert("스트라이크 아웃!");

            on++;
            co.innerHTML = on;
            resetS_B();
            // bn = 0;
            // cb.innerHTML = bn;
            // sn = 0;
            // cs.innerHTML = sn;
        }

        if (on >= 3) {
            alert("게임 over!");
            st.disabled = true;
            ba.disabled = true;
            re.style.display = "inline";
        }
    });

    ba.addEventListener("click", () => {
        bn++;
        cb.innerHTML = bn;
        if (bn >= 4) {
            alert("볼입니다.")

            resetS_B();
            // bn = 0;
            // cb.innerHTML = bn;
            // sn = 0;
            // cs.innerHTML = sn;
        };
    });


    re.addEventListener("click", () => {
        resetS_B();
        // bn = 0;
        // cb.innerHTML = bn;
        // sn = 0;
        // cs.innerHTML = sn;
        on = 0;
        co.innerHTML = on;

        st.disabled = false;
        ba.disabled = false;
        re.style.display = "none";

    });

    // 겹치는 부분 함수로 만들기
    function resetS_B() {
        bn = 0;
        cb.innerHTML = bn;
        sn = 0;
        cs.innerHTML = sn;
    }
</script>

</html>