Skip to content

Eastar-DS/javascript-lotto

 
 

Repository files navigation

TDD기반 로또 페어 프로그래밍

서비스 한 줄 요약

구매 로또와 정답 로또를 비교해서 정답 개수 세기

프로그래밍 요구사항

  • const만 사용
  • depth 1단계
  • 파라미터 2개 이하
  • 순수 함수만 사용하기
  • getter 금지 (출력할 때만 사용하기)
  • 클래스 필드는 2개까지

1차 구현 목표

금액을 입력받고 금액에 맞게 랜덤한 번호를 할당한 로또를 발행하고 당첨번호, 보너스번호와 비교하여 등수를 계산해 수익률을 출력하는 프로그램 만들기.

기능 목록

1. 로또 구입

2. 로또 발행

3. 당첨 로또 발행

4. 당첨 여부 확인

1등: 6개 번호 일치 / 2,000,000,000원
2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원
3등: 5개 번호 일치 / 1,500,000원
4등: 4개 번호 일치 / 50,000원
5등: 3개 번호 일치 / 5,000원

5. 게임 종료 및 재시작

구현 계획

1. Validator

  • 0또는 음의 정수가 입력된 경우 에러를 발생시킨다

  • 1~45 사이가 아닌 경우 에러를 발생시킨다

  • 로또 번호가 중복되는 경우 에러를 발생시킨다

  • 로또 번호가 6개가 아닌 경우 에러를 발생시킨다

  • 빈 입력 시 에러를 발생시킨다

  • 입력에 문자가 포함된 경우 에러를 발생시킨다

  • 입력이 1,000원 단위가 아닌 경우 에러를 발생시킨다

  • 배열에 중복된 값이 있는 경우 에러를 발생시킨다

2. Lotto

  • 유효한 번호를 이용해 Lotto 객체를 생성한다
  • 로또 생성 시 번호를 오름차순으로 올바르게 정렬해야한다
  • 유효하지 않은 값을 이용해 로또를 생성할 경우 에러를 발생시킨다

3. LottoGenerator

  • 구입 수량만큼 로또를 발행해야 한다

4. WinningLotto

  • 유효한 로또 번호, 보너스 번호를 이용해 WinningLotto 객체를 생성한다
  • 유효하지 않은 값을 이용해 로또를 생성할 경우 에러를 발생시킨다
  • 임의의 로또가 당첨번호와 일치하는 번호의 개수를 반환한다
  • 임의의 로또가 보너스 번호를 포함하고 있는지 반환한다

5. ScoreBoard

  • 로또를 당첨 번호, 보너스번호와 비교하여 올바르게 등수를 계산한다
  • 구매한 모든 로또의 등수를 계산해 반환한다
  • 올바른 수익률을 계산하고 소수점 둘째자리에서 반올림한 뒤 반환한다

2단계 - 웹 기반 로또 게임

요구사항

  • 1단계에서 구현한 도메인 로직을 수정하지 않고, UI만 변경한다.
  • 목적에 맞는 HTML 태그를 사용한다.
  • CSS 속성은 가능하면 축약형(shorthand)을 사용한다.
  • flexbox를 활용해 레이아웃을 구성한다.

UI 구현 계획

  • 헤더
  • 제목 및 구입금액 입력폼
  • 구매한 로또 목록 표시
  • 당첨번호 및 보너스번호 입력폼
  • 푸터
  • 오버레이 및 당첨 결과 모달

About

자바스크립트로 구현하는 로또 어플리케이션

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 80.1%
  • HTML 12.0%
  • CSS 7.9%