프로그래밍/자바스크립트

Javascript - 로또 번호 생성기 만들기

가카리 2015. 1. 23. 22:09
반응형


실습 1: 로또 번호 생성기 만들기

프로젝트명 : exercise01

파일명: index.html

요구사항 

1. Lotto 생성자 함수는 로또 번호의 범위값(예를 들어 로또 번호가 1번부터 45번까지 있을 경우 가장 큰 값인 45를 사용)으로 사용할 매개변수 numbers와 선택할 공의 갯수로 사용할 매개변수 balls를 가집니다. number와 balls 매개변수에 전달된 인자는 Lotto 생성자 함수 호출을 통해 생성된 객체의 프로퍼티 numbers와 balls에 각각 저장합니다.

2. Lotto 생성자 함수 호출을 통해 생성된 객체는 기본적으로 빈 배열 객체의 프로퍼티 luckyNumbers를 가지며, 이 배열 객체에 getLuckyNumbers() 메소드 호출을 통해 생성된 로또 번호들을 추가합니다.

3. Lotto 생성자 함수의 프로토타입 객체에 추가된 getLuckyNumbers() 메소드는 랜덤하게 로또 번호를 생성하고, 그 로또 번호들을 luckyNumbers 배열 객체에 저장하며, 그 배열 객체를 반환합니다.

4. Math.random()은 0~1 사이의 실수를 반환하므로 객체의 프로퍼티에 저장되어 있는 numbers와의 곱셈을 통해 만들어진 숫자의 정수부에 1을 더해 로또 번호를 만듭니다. balls 프로퍼티에 저장되어 있는 갯수만큼의 로또 번호가 다 만들어질 때까지 위에 설명된 방법으로 로또 번호를 생성하고, 매번 생성된 로또 번호가 프로퍼티 luckyNumbers의 배열 객체에 이미 존재하는지 indexOf()를 이용해 검사하고, 존재하지 않을 경우 push() 호출을 통해 추가합니다.

5. 이 후 luckyNumbers의 length 프로퍼티와 balls 프로퍼티 값이 동일하면 지정된 갯수만큼의 로또 번호가 다 만들어진 것이되므로 luckyNumbers배열 객체를 반환합니다.

6. index.html 페이지를 요청할 때마다 로또 번호를 자동 생성해 출력합니다.








나의 답안


<!DOCTYPE html>

<html lang="ko">

  <head>

    <meta charset="utf-8" />

    <title>로또 번호 생성기</title>

     <script type="text/javascript">

        

        function Lotto(numbers, balls){

        

        this.numbers = numbers;

        this.balls = balls;

        this.luckyNumber = [];

        }

                

        Lotto.prototype.getLuckyNumbers = function(){

                

        for(;;){

        var result = Math.floor(Math.random()*this.numbers) + 1;

        

        if(this.luckyNumber.indexOf(result) == -1)

        this.luckyNumber.push(result);

        

        if(this.balls == this.luckyNumber.length)

        break;

        }

        

        return this.luckyNumber;

        };

  

        

        var obj1 = new Lotto(45, 6);

        

        

        document.writeln('이번의 로또번호 예상번호는 '+ obj1.getLuckyNumbers()+ '입니다.');

        

        </script>

  </head>

<body>

   

</body>

</html>



출력화면


반응형