/java-lotto

로또 게임 구현을 관리하는 저장소

Primary LanguageJava

로또

진행 방법

  • 로또 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
  • 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
  • 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.

온라인 코드 리뷰 과정


1단계 - 문자열 덧셈 계산기 Todo List

  • 컴마(,) 또는 콜론 (:)을 가지는 문자열을 구분자 기준으로 분리한다.
    • 숫자 두개를 컴마(,) 구분자로 입력할 경우 두 숫자의 합을 반환한다.
    • 숫자 두개를 콜론(,) 구분자로 입력할 경우 두 숫자의 합을 반환한다.
  • “//”와 “\n” 사이에 위치하는 커스텀 구분자를 지정할 수 있다.
    • 커스텀 구분자로 문자열을 분리한다.
  • 분리된 문자열을 덧셈한다.
  • 숫자 이외의 값 or 음수일경우 RuntimeException 을 발생한다.
  • 빈 문자열 또는 null 값을 입력할 경우 0을 반환한다.
  • 숫자 하나를 문자열로 입력할 경우 해당 숫자를 반환한다.

2단계 - 로또 (자동) Todo List

  1. 입력 창 (Input View)
    • 구입 금액 (Price)을 입력 받는다.
    • 구입 금액 (Price)이 1000원 미만일 경우 NoPurchasePriceException 을 발생한다.
    • 당첨 번호를 입력 받는다.
  2. 로또 (Lotto)
    • 개당 천원으로 계산한다. ex) 14000 = 14개
    • 구입 금액 (Price)에 해당하는 복권 (Lottery)을 구매 한다.
      • 로또 번호 (Lotto Number)는 1~45 사이에 6개의 랜덤 숫자를 갖는다.
      • 6개의 숫자는 중복이 허용되지 않는다.
      • 6개의 숫자를 정렬 한다.
  3. 당첨 (Lotto Result)
    • 로또 번호 (Lotto Number)와 당첨 번호가 3개 이상부터 일치하는 갯수를 구한다.
    • 수익률을 계산한다. 당첨 금액 / 구입 금액 (Price) = 수익률 (소숫점 둘째자리까지)
  4. 출력 (Output View)
    • 입력 받은 구입 금액 (Price)에 따른 구매 갯수를 출력한다.
    • 구입한 로또 번호 (Lotto Number)들을 출력한다.
    • 당첨 번호를 입력하라는 메시지를 출력한다.
    • 일치하는 갯수 현황을 출력한다.
      • 3개 일치할 경우 5,000원
      • 4개 일치할 경우 50,000원
      • 5개 일치할 경우 1,500,000원
      • 6개 일치할 경우 2,000,000,000원
    • 수익률을 출력한다.

3단계 - 로또 (2등) Todo List

  1. 입력 창 (Input View)
    • 보너스 볼 (Bonus Ball)을 입력 받는다.
  2. 보너스 볼 (Bonus Ball)
    • 1 ~ 45 사이의 로또 번호 (Lotto Number)를 받아야 한다.
  3. 당첨 (Lotto Result)
    • 구매한 로또 복권 (Lotteries)보너스 볼 (Bonus Ball) 번호와 일치하는지 체크 한다.
  4. 로또 등수 (Lotto Rank)
    • 5개 일치 + 보너스 볼 (Bonus Ball) 일치에 해당하는 등수를 추가한다.

4단계 - 로또 (수동) Todo List

  1. 입력 창 (Input View)
    • 수동으로 구매할 복권 갯수를 입력받는다.
    • 수동으로 구매할 복권 갯수 만큼 로또 번호를 입력받는다.
  2. 출력 창 (Output View)
    • 수동 구매와 자동 구매의 갯수를 출력한다.
  3. 로또 (Lotto)
    • 구입 금액보다 수동 구매 갯수가 더 많으면 예외를 발생한다.
    • 수동 구매를 할 수 있다.
    • 자동 구매를 할 수 있다.
      • 수동 구매한 갯수 만큼 금액을 차감한다.