본문 바로가기
프로그래밍/프로젝트

술자리에서 많이하는 숫자 맞추기 게임 웹페이지 만들기

by 숙님 2024. 1. 2.
728x90

0. 배포 링크

- 오늘 회사 연차라 오전에 간단히 프로젝트 진행함(여유ㅎ)

 

1. 화면 이미지 모음

- 낮은 숫자를 입력하면 -> 'up!'이라고 나옴 

- 낮은 숫자를 입력하면 -> 'down!'이라고 나옴 

- 기회는 단 5번뿐

 

- 답을 맞히면 '정답입니다!'라고 나오도록 만듦 

 

2. 코드

2-1. index.html

<!DOCTYPE html>
<html lang="en">
<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>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>숫자 맞추기 게임</h1>
    <div id="result-area">결과가 나온다</div>
    <div id="chance-area">남은 찬스: 5번</div>
    <input type="number" id='user-input'/>
    <button id="play-button">Go!</button>
    <button id="reset-button">리셋!</button>
    <script src="main.js"></script>
</body>
</html>

 

- vs코드에 'html:5'나오는 것으로 자동완성해서 시작했는데 <html lang="en">로 나오는 거 신기함 --> 영어 베이스인 듯 

 

 

2-2. main.js

//랜덤 번호 지정
//유저가 번호 입력 그리고 go라는 버튼 누름
//만약 랜덤번호 맞추면, 맞췄습니다
//랜덤번호<유저번호 down
//> up
//reset 버튼 누르면 게임 리셋
//5번의 기회를 다쓰면 게임 끝
//1~100범위 안에서만 가능
//이미 입력한 숫자는 기회 줄이기 x

let computerNum = 0;
let playButton = document.getElementById("play-button");
let userInput = document.getElementById("user-input");
let resultArea = document.getElementById("result-area");
let resetButton = document.getElementById('reset-button');
let chances = 5;
let gameOver = false;
let chancesArea = document.getElementById('chance-area');
let history = [];

playButton.addEventListener('click', play)
resetButton.addEventListener('click', reset)
userInput.addEventListener('focus', function(){
    userInput.value=''
});


function pickRandomNum(){
    computerNum = Math.floor(Math.random()*100);
    console.log("정답", computerNum);
}

function play(){
    let userValue = userInput.value;
    if(userValue<1 || userValue>100){
        resultArea.textContent='1과 100사이 숫자를 입력해 주세요'
        return;
    }
    if(history.includes(userValue)){
        resultArea.textContent = '이미 입력한 숫자입니다 다른 숫자를 입력해 주세요';
        return;
    }
    chances --;
    chancesArea.textContent = `남은기회: ${chances}번`;

    if(userValue < computerNum){
        resultArea.textContent = 'UP!'
    }else if (userValue > computerNum){
        resultArea.textContent = 'DOWN!!'
    }else{
        resultArea.textContent = '정답입니다!'
        gameOver=true
    }

    history.push(userValue)
    if (chances < 1){
        gameOver = true
    }
    if (gameOver == true){
        playButton.disabled = true;
    }
}

function reset(){
    userInput.value = '';
    pickRandomNum();
}
pickRandomNum();

 

- 배운 점: 

-- mac에서 백틱 키 쓰는 것 어려움 

-- 'document.getElementById'와 더 친해지기 

-- 난수 설정하는 것: 좋은 블로그 추천

- 보완사항: css를 전혀 하지 않아서 더 사용자 친화적이게 꾸미면 좋을 것 같음(보완할 사항) 

- 느낀 점: 프로젝트 자주 해서 실력 향상을 해야겠다(주 1개의 유데미 강의를 끝내는 것을 목표 + 프로젝트 틈틈이 하기) 

댓글