Skip to content

devyoon91/java-lotto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

로또

| 2단계 로또(자동), 3단계 로또(2등), 4단계 로또(수동)


📍2단계 - 로또 (자동)

기능 요구사항

  • 로또 구입 금액을 입력하면 구입 금액에 해당하는 로또를 발급해야 한다.
  • 로또 1장의 가격은 1000원이다.

기능 구현사항

  • 입력한 로또 구매액이 1000원 보다 크지 않으면 재입력을 받도록 한다
  • 입력한 로또 구매액을 1000원으로 나누어 0이 떨어지지 않으면 재입력을 받도록 한다
  • 로또번호를 가진 일급 컬렉션은 static 에 1 ~ 45 까지의 숫자를 한번만 생성하여 가지고 있는다 (재생성 방지)
  • 로또번호를 가진 일급 컬렉션은 of 메소드로 로또 숫자를 검증한다, 검증오류가 생길경우 IllegalArgumentException 예외가 발생한다
  • 입력한 구매액을 받아 1000원 단위로 구매 개수를 리턴한다 (예: 14000원 -> 14개)
  • 입력한 당첨 번호는 콤마로 구분한다
  • 입력한 당첨 번호는 6개의 숫자여야 한다, 충족하지 못한 경우 재입력을 받도록 한다
  • 로또 객체는 로또 숫자 리스트의 사이즈가 초과이거나 미만일 경우 IllegalArgumentException 예외가 발생한다(예외 메세지도 호출)
  • 자동생성된 로또 번호중에 중복 당첨 되었을 경우 상금을 합산하여 리턴해 준다 (예: 5000원 두번당첨 -> 10000원)
  • 로또 당첨 등수와 상금액은 enum 클래스로 정의한다
  • 1등이 여러번 당첨될 경우를 대비해 상금의 합산은 BigInteger 로 리턴하여 보여준다
  • 로또 당첨통계 객체를 생성 static에 당첨등수+당첨횟수를 적재하는 Map 생성, 횟수는 AtomicInteger로 건수를 증가 시킨다
  • 로또번호 일급 컬렉션 객체 테스트 케이스를 추가한다
    • 0~45 로또 번호 이외 생성 -> IllegalArgumentException 예외 발생
    • 번호 정상 생성
  • 로또 객체 테스트 케이스 추가
    • 로또 번호 초과 생성
    • 로또 번호 미만 생성
    • 로또 테스트 로또번호 == 입력번호, Lotto 객체 비교
  • 로또 당첨통계 객체 테스트 케이스 추가
    • 1등, 4등 당첨횟수를 검증
    • 로또 총 획득 상금을 리턴하여 검증
  • 로또 자판기 객체 테스트 케이스 추가
    • 1등 검증

📍3단계 - 로또 (2등)

  • 입력한 보너스번호가 0~45에 포함되지 않으면 재입력 받도록 한다
  • 로또 객체에서 로또결과(enum 클래스)를 리턴하도록 구현
  • 보너스 번호를 받아 당첨번호+보너스번호 List 객체를 생성한다
  • 로또결과(enum 클래스)에 2등(30000000) 추가
  • 로또결과(enum 클래스)에 당첨 등수를 리턴하는 메소드 구현
  • 로또 객체 테스트 케이스 추가
    • 당첨번호, 보너스번호 를 받아, 리턴되는 로또결과 객체를 체크
  • 로또 당첨통계 객체 테스트 케이스 추가
    • 2등 당첨금 확인
  • 로또 자판기 객체 테스트 케이스 추가
    • 로또번호 5개 + 보너스 번호 일치시 로또결과 객체가 2등인지 체크
  • 로또 당첨결과 객체 생성, 로또결과(enum 클래스) 와 당첨건수를 가지고 있는다
  • 로또 당첨결과 일급 컬렉션 생성
  • 로또 당첨결과 테스트 케이스 추가
    • 로또 1등결과건수 객체 비교
  • 로또 당첨번호 객체 생성, 생성자로 당첨번호 받아와 객체 생성 6자리 숫자가 아니면 IllegalArgumentException 예외가 발생한다(예외 메세지도 호출)
  • 로또 당첨번호 객체는 당첨건수와 보너스 숫자 존재여부를 확인 한다
  • 로또 당첨번호 객체 테스트 케이스 추가
    • 로또 당첨번호 6개 이상 입력시 IllegalArgumentException 발생
    • 로또 번호 = 당첨번호 일치건수 확인
    • 로또번호 보너스 번호 존재여부 확인
  • 로또결과(enum 클래스)에서 로또 당첨결과 확인해 결과를 리턴한다
  • 로또 당첨번호 객체는 Lotto 객체를 상속받아 사용한다

📍4단계 - 로또 (수동)

  • 수동 로또개수를 입력 받도록한다, 양수가 아니면 재입력 받도록한다(0입력 가능)
  • 수동 로또번호를 입력한 로또개수로 제한하여 입력받는다
  • 로또 객체에 자동/수동 여부를 확인할 인스턴수 변수를 생성
  • 로또 객체 테스트 케이스 추가
    • Lotto 자동생성 == 수동생성 불일치 확인

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors