본문 바로가기

Javascript

자바스크립트_로또 당첨 알고리즘 만들기

오늘은 학원에서 내 준 과제로, 자바스크립트를 이용하여 로또 당첨 알고리즘을 만들어 보겠습니다!

부가적인 설명 없이 코드와 결과를 기재하겠습니다.

 

먼저 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>작업 지시서3</title>
    <style>
        body{
            width: 1200px;
            margin: auto;
        }
        
        .select{
            padding: 15px 15px;
            margin-top: 20px;
            margin-left: 30px;
            background-color: lightcoral;
            color: white;
            font-weight: bolder;
            font-size: 20px;
        }

        .result{
            padding: 20px 20px;
            margin-top: 60px;
            margin-left: 250px;
            background-color: skyblue;
            color: black;
            font-weight: bolder;
            font-size: 20px;

        }
    </style>
</head>
<body>

    <h1>당신의 번호는?</h1>
    <img style="width: 100px; height: 100px;" id="my_num1" src="resources/images/ball_1.png">
    <img style="width: 100px; height: 100px;" id="my_num2" src="resources/images/ball_2.png">
    <img style="width: 100px; height: 100px;" id="my_num3" src="resources/images/ball_3.png">
    <img style="width: 100px; height: 100px;" id="my_num4" src="resources/images/ball_4.png">
    <img style="width: 100px; height: 100px;" id="my_num5" src="resources/images/ball_5.png">
    <img style="width: 100px; height: 100px;" id="my_num6" src="resources/images/ball_6.png">

    <br><br><br>

    <h1>당첨 번호는?</h1>
    <div style="float: left;">
    <img style="width: 100px; height: 100px;" id="num_img1" src="resources/images/ball_1.png">
    <img style="width: 100px; height: 100px;" id="num_img2" src="resources/images/ball_2.png">
    <img style="width: 100px; height: 100px;" id="num_img3" src="resources/images/ball_3.png">
    <img style="width: 100px; height: 100px;" id="num_img4" src="resources/images/ball_4.png">
    <img style="width: 100px; height: 100px;" id="num_img5" src="resources/images/ball_5.png">
    <img style="width: 100px; height: 100px;" id="num_img6" src="resources/images/ball_6.png">
    </div>
    
    <div style="margin: auto; width: 1300px;">
        <input id="change_img_btn1" type="button" value="추첨" class="select">
    </div>
    <br>

    <div style="margin: auto; width: 1300px; clear: left;">
        <input id="change_img_btn2" type="button" value="당첨 결과" class="result">
    </div>
    <br>
        
    <h2 id="out">당신의 결과는?</h2>
    <script src="lotto.js"></script>
</body>
</html>

 

 

다음은 js 코드입니다.

const changeImgBtn1 = document.getElementById("change_img_btn1");
const changeImgBtn2 = document.getElementById("change_img_btn2");
const outPut = document.getElementById("out");


 // 나의 번호 6개(중복 제거 & 숫자 범위 제한)
let arr1 = [];
for (let j = 0; j < 6; ++j) {
    let input = prompt("번호를 입력해 주세요!(1 ~ 46)")
    
    if (input < 1 || input > 46){
        alert("1~46 범위로 입력하여 주시옵소서.");
        j--;
    }
    else if (arr1.indexOf(input) === -1) { 
        arr1.push(input);
    } else {
        j--;
        alert("중복된 번호입니다. 다시 입력하여 주시옵소서.")
    }
    document.getElementById("my_num" + (j + 1)).src = "resources/images/ball_" + arr1[j] + ".png";
    
}

let num = []; // Global Variable로 가져옴 <- 다음 코드에 계속 사용하기 위함 

// 당첨번호 6개(중복 제거)
changeImgBtn1.addEventListener('click', () => {
    let arr2 = [];
    for (let i = 0; i < 6; ++i) {
        randomNum2 = Math.floor(Math.random() * 45) + 1;
        if (arr2.indexOf(randomNum2) === -1) {
            arr2.push(randomNum2);
        } else {
            i--;
        }
        
        document.getElementById("num_img" + (i + 1)).src = "resources/images/ball_" + arr2[i] + ".png";
    }
    num = arr2; // Local Variable을 배열 num에 할당
});


// 당첨 결과 버튼 누를 때 해당 결괏값이 출력됨
changeImgBtn2.addEventListener('click', check);

function check() {
    let total = 0;
    for (j = 0; j < arr1.length; ++j) {
        for (i = 0; i < num.length; ++i) {
            if (arr1[j] == num[i]) {
                ++total;
            }
        }
    }
    if (total >= 3){
        outPut.innerHTML = "축하합니다! 1등입니다.";
    }
    else if (total == 2){
        outPut.innerHTML = "축하합니다! 2등입니다.";   
    }
    else if (total == 1){
        outPut.innerHTML = "축하합니다! 3등입니다.";       
    }
    else {
        outPut.innerHTML = "꽝입니다. 다음 기회는 없다. 이 식판아 ^^!!!";
    }
}

 

 

해당 코드로 작성한 기본 화면입니다.

 

 

번호를 입력한 다음 추첨 버튼을 클릭한 후, 당첨 결과 버튼을 누르면

이와 같은 결과가 출력되도록 코딩하였습니다.