본문 바로가기
프로그래밍/자바스크립트

07 주사위게임, 가위바위보, 로또추첨 만들기

by 윤지(●'◡'●) 2021. 6. 13.
반응형


주사위 게임

 

주사위 게임

- 랜덤한 수를 뽑아 변수에 저장
- 자신이 입력한 수와 일치하면 끝나는 게임(틀리면 무한 반복)

[출력 예시]
주사위 숫자를 맞춰보세요.(1~6) 3
틀렸습니다.
주사위 숫자를 맞춰보세요.(1~6) 4
맞췄습니다

 

[코드]

<!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>
</head>
<body>
    <script>
        'use strict';
        while(true){
            let rand = Math.floor(Math.random()*6) + 1; //1~6까지 랜덤한 수 생성
            let user = Number(prompt('주사위 숫자를 맞춰보세요.(1~6)')); //user가 입력한 값
            if(rand == user){ // 랜덤값과 유저 값이 같다면
                alert('맞췄습니다'); // 맞췄습니다 팝업
                break;
            }else{ // 랜덤값과 유저값이 같지않다면
                alert('틀렸습니다'); //틀렸습니다 팝업
            }
        }
    </script>
</body>
</html>

[결과]

 

 

 

 

가위바위보 게임

 

가위바위보

-랜덤한 수를 뽑아 변수에 저장(1. 가위, 2. 바위, 3.보)
-자신의 입력한 가위, 바위, 보와 비교하여 결과를 출력

[출력예시]
가위,바위,보 중 하나를 입력하세요. 가위
컴퓨터 : 바위, 유저 : 가위 졌습니다.
가위,바위,보 중 하나를 입력하세요. 가위
컴퓨터 : 보, 유저 : 가위 이겼습니다. 게임을 종료합니다.

 

[코드]

<!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>
</head>
<body>
    <script>
        'user strict';
        let flag = true;
        while(flag){
            let computer = Math.floor(Math.random()*3);
            // 0 : 가위, 1:바위, 2:보
            let user = prompt('가위,바위,보 중에 입력해주세요.'); //유저가 입력한 값 저장
            switch (user){ // user 값으로 비교
                case '가위': // user가 가위를 입력했을 때
                	//모든 경우의 수 if문으로 결과값 나누기
                    if(computer == 0) alert(`컴퓨터: ✌, 유저 : ✌ 비겼습니다.`);
                    if(computer == 1) alert(`컴퓨터: ✊, 유저 : ✌ 졌습니다.`);
                    if(computer == 2){
                        alert(`컴퓨터: ✋, 유저 : ✌ 이겼습니다. 게임을 종료합니다.`);
                        flag = false; // flag가 false가 되며 while문이 종료된다
                    }
                break;
                case '바위':
                    if(computer == 0){
                        alert(`컴퓨터: ✌, 유저 : ✊ 이겼습니다. 게임을 종료합니다.`);
                        flag = false;
                    }
                    if(computer == 1) alert(`컴퓨터: ✊, 유저 : ✊ 비겼습니다.`);
                    if(computer == 2) alert(`컴퓨터: ✋, 유저 : ✊ 졌습니다.`);
                break;
                case '보':
                    if(computer == 0) alert(`컴퓨터: ✌, 유저 : ✋ 졌습니다.`);
                    if(computer == 1){
                        alert(`컴퓨터: ✊, 유저 : ✋ 이겼습니다. 게임을 종료합니다.`);
                        flag = false;
                    }
                    if(computer == 2)alert(`컴퓨터: ✋, 유저 : ✋ 비겼습니다.`);
                break;
            }
        }
        document.write(`<h2>승리를 축하합니다🎉</h2>`)
    </script>
</body>
</html>

 

[결과]

 

로또 번호 추첨

로또 번호 예측 프로그램
- 1 ~ 45까지의 랜덤한 수를 총 6개 추출    
- 같은 수가 중복되어 추출되면 안됨    
- 배열을 이용    
- 보너스 번호 따로 뽑기
- 숫자가 중복되면 안됨

 

[코드]

<!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>
</head>
<body>
    <script>
        let rottoNum = []; //로또 번호를 담을 배열 생성
        alert('로또 번호를 추첨하려면 확인버튼을 눌러주세요.')
        for(let i = 0; i < 6 ; i++){ //보너스 번호를 제외한 5개의 번호 생성을 위한 for문
            rottoNum[i] = Math.floor(Math.random()*45)+1;
            //1~45까지의 랜덤한 숫자 5개를 rottoNum 배열에 담기
            for(let j = 0; j < i; j++){ //중복 검사
            if(rottoNum[i] == rottoNum[j]){ //현재 있는 로또번호와 새로 뽑은 로또 번호가 같다면
                i--; // i를 -1해 다시 뽑음
                break;
            }
        }

	//보너스 번호 추첨
        let bonusNum = Math.floor(Math.random()*45)+1;
        // 중복 검사
        for(let i = 0; i < rottoNum.length; i++){
            if(bonusNum == rottoNum[i]){
                bonusNum = Math.floor(Math.random()*45)+1;
            }
        }

    }
    document.write(`<h2>[ 로또 추첨 번호 🎱]</h2>`)
    rottoNum = rottoNum.join(' ');
    document.write(`<h2>${rottoNum} + ${bonusNum}</h2>`);
    </script>
</body>
</html>

 

[결과]

 

 


열심히 공부하고 있지만, 오류 사항이 존재 할 수 있습니다.

수정 사항이 존재 할 경우 알려주시면 감사하겠습니다 <(__)>

반응형

'프로그래밍 > 자바스크립트' 카테고리의 다른 글

09 사용자 정의 함수(function)  (0) 2021.06.16
08 자바스크립트의 배열과 for in, for of, forEach문  (0) 2021.06.15
06 연산자  (0) 2021.06.10
05 대화상자  (0) 2021.06.09

댓글