관리 메뉴

이재호

간단한 스코어 게임 만들기 본문

프론트엔드/자바스크립트

간단한 스코어 게임 만들기

호재이 2023. 2. 15. 13:09

5점을 먼저 내면 이기는 간단한 스코어 게임을 만들어보겠습니다.

<!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>make winner game </title>
    <style>
        .winner {
            color: green
        }
        .lose { 
            color: red;
        }
    </style>
</head>
<body>
    <h1><span id="disp1"> 0 </span> to <span id="disp2"> 0 </span></h1>
     <select name="" id="selScor">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
     </select>
     <button id="p1btn">player 1</button>
     <button id="p2btn">player2</button>
     <button id="resetBtn">reset</button>
     <script src="./app.js"></script>
</body>
</html>

app.js

const disp1 = document.querySelector('#disp1')
const disp2 = document.querySelector('#disp2')
const p1btn = document.querySelector('#p1btn')
const p2btn = document.querySelector('#p2btn')
const resetbtn = document.querySelector('#resetBtn')
const selbtn = document.querySelector('#selScor')


// 카운터 증가 
let p1cnt = 0
let p2cnt = 0
let winnerScore = 5

// 게임 추척 

let isGameOver = false


// p1 

p1btn.addEventLisner('click', ()=>{
    // 게임을 진행하고 있으면 
    if(!isGameOver){
    // 1씩증가
    p1cnt += 1
    // 만약 p1 스코어가 5점과 같다면 
    if(p1cnt === winnerScore){
      // 게임이 끝났으니 스코어 증가 종료 
      isGameOver = true
     // 스타일 클래스 부여 이긴사람은 녹색, 진사람은 빨간색 
     disp1.classList.add('winner')
     disp2.classList.add('lose')
     }
    // 스코어 화면에 점수 출력 
    disp1.textCotent = p1cnt
    }
})

// p2

p2btn.addEventLisner('click', ()=>{
    // 게임을 진행하고 있으면 
    if(!isGameOver){
    // 1씩증가
    p2cnt += 1
    // 만약 p1 스코어가 5점과 같다면 
    if(p2cnt === winnerScore){
      // 게임이 끝났으니 스코어 증가 종료 
      isGameOver = true
     // 스타일 클래스 부여 이긴사람은 녹색, 진사람은 빨간색 
     disp2.classList.add('winner')
     disp1.classList.add('lose')
     }
    // 스코어 화면에 점수 출력 
    disp2.textCotent = p1cnt
    }
})


// 이길수 있는 스코어 점수를 선택할수 있는 select 버튼 

selbtn.addEventLisner('change', function(){
// 이기는 스코어는 셀렉트의 선택되는값 
// 화살표 함수를 사용하면 window를 바라보기떄문에 일반함수를 사용해야함
winnerScore = parseInt(this.value)
})


// 함수로 뺴서 로직을 작성

const reset = () => {

p1cnt = 0
p2cnt = 0 
disp1.textContent = ''
disp2.textContent = ''
dsip1.classList.remove('winner', 'lose')
dsip2.classList.remove('winner', 'lose')

}

// 점수를 초기화 할수 있는 reset 버튼
resetbtn.addEventLisner('click', reset)