Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[로또] 김채원 미션 제출합니다. #81

Open
wants to merge 26 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
cbe0933
docs: update README.md
Grove1212 Nov 1, 2024
d64cb36
docs: update README.md
Grove1212 Nov 3, 2024
49ab085
feat: add exception handling for lotto validation
Grove1212 Nov 3, 2024
e83e5aa
feat: add generate lotto
Grove1212 Nov 3, 2024
ca27f0f
feat: impliment lotto generation based on purchase amount
Grove1212 Nov 3, 2024
3c479cc
feat: add lottoResultChecker object and test
Grove1212 Nov 3, 2024
5609780
feat: add get purchase price and get lotto numbers
Grove1212 Nov 3, 2024
c6478b0
feat: add get bonusNumber function
Grove1212 Nov 3, 2024
ae452ee
feat: add LottoDraw class run method
Grove1212 Nov 3, 2024
4486516
feat: add OutputView class
Grove1212 Nov 3, 2024
08eaaea
fix(OutputView): 오탈자 수정
Grove1212 Nov 3, 2024
48bbe94
fix: 프로그래밍 요구 사항2 반영, mvc모델에 맞춰 파일 이동
Grove1212 Nov 3, 2024
3357876
refactor: 에러메시지 상수화
Grove1212 Nov 4, 2024
4d90189
feat: 당첨번호와 보너스 번호가 중복이면 에러처리
Grove1212 Nov 4, 2024
8e35461
feat: inputView에서 에러를 throw하는 구문을 클래스로 분리
Grove1212 Nov 4, 2024
0f31fd8
refactor: Lotto클래스 내부의 유효성 검사를 사용할 수 있도록 구현
Grove1212 Nov 4, 2024
b2c5ef3
refactor: Enum 클래스 적용
Grove1212 Nov 4, 2024
88c3407
refactor: 예외처리 추가
Grove1212 Nov 4, 2024
b400112
test: LottoResultChecker와 Lotto의 테스트코드 작성
Grove1212 Nov 4, 2024
ae6756f
test: StoreTest 수정
Grove1212 Nov 4, 2024
90f748f
test: InputValidateTest 추가
Grove1212 Nov 4, 2024
41d0d1e
style: 클래스들을 패키지에 정리
Grove1212 Nov 4, 2024
26ed47a
style: print값의 상수화
Grove1212 Nov 4, 2024
ed6fc51
chore: 피드백 주신 내용 검토
Grove1212 Nov 4, 2024
8cea67d
docs: 가독성있게 README.md 수정
Grove1212 Nov 4, 2024
1038ac8
docs: update README.md
Grove1212 Nov 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
docs: 가독성있게 README.md 수정
Grove1212 committed Nov 4, 2024
commit 8cea67d25e3a1241012013f4fe8cd5b11e65eb95
71 changes: 36 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,55 @@
# kotlin-lotto-precourse

# 기능 구현 목록
### 1. 입력

- [x] 로또를 발행한다.
- [x] 1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다.
- [x] 오름차순으로 정렬한다.

- [x] 로또가 알맞은 형식인지 검사한다.
- [x] [예외] 1~45사이의 숫자가 아닌 경우.
- [x] [예외] 숫자가 중복인 경우.
- [x] [예외] 6개의 숫자가 아닌 경우.
- [x] [예외] 오름차순이 아닌 경우.

- [x] 구입 금액에 해당하는 만큼 로또를 발행한다.
- [x] 로또 1장의 가격은 1,000원이다.

- [x] 로또 구입 금액을 입력받는다.
- [x] [예외] 가격이 숫자가 아닌 경우.
- [x] [예외] 가격이 1000원 미만인 경우.
- [x] [예외] 가격이 숫자가 아닌 경우.
- [x] [예외] 가격이 1000원 미만인 경우.

- [x] 당첨 번호를 입력받는다.
- [x] [예외] 문자인 경우.
- [x] [예외] 1~45사이의 숫자가 아닌 경우.
- [x] [예외] 숫자가 중복인 경우.
- [x] [예외] 6개의 숫자가 아닌 경우.
- [x] [예외] 문자인 경우.
- [x] [예외] 1~45사이의 숫자가 아닌 경우.
- [x] [예외] 숫자가 중복인 경우.
- [x] [예외] 6개의 숫자가 아닌 경우.

- [x] 보너스 번호를 입력받는다.
- [x] [예외] 가격이 숫자가 아닌 경우.
- [x] [예외] 1~45사이의 숫자가 아닌 경우.
- [x] [예외] 당첨번호와 중복될 경우
- [x] [예외] 가격이 숫자가 아닌 경우.
- [x] [예외] 1~45사이의 숫자가 아닌 경우.
- [x] [예외] 당첨번호와 중복될 경우

- [x] 당첨 여부를 비교한다.
- [x] 사용자가 잘못된 값을 입력할 경우
- [x] `IllegalArgumentException`을 발생시킨다.
- [x] "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.
- [x] `Exception`이 아닌 `IllegalArgumentException`, `IllegalStateException` 등과 같은 명확한 유형을 처리한다.

```
- 1등: 6개 번호 일치 / 2,000,000,000원
- 2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원
- 3등: 5개 번호 일치 / 1,500,000원
- 4등: 4개 번호 일치 / 50,000원
- 5등: 3개 번호 일치 / 5,000원
```
### 2. 로또 발행

- [x] 사용자가 구매한 로또 번호와 당첨 번호를 비교한다.
- [x] 당첨 내역을 구한다.
- [x] 로또를 발행한다.
- [x] 1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다.
- [x] 오름차순으로 정렬한다.
- [x] 구입 금액에 해당하는 만큼 로또를 발행한다.
- [x] 로또 1장의 가격은 1,000원이다.

- [x] 로또가 알맞은 형식인지 검사한다.
- [x] [예외] 1~45사이의 숫자가 아닌 경우.
- [x] [예외] 숫자가 중복인 경우.
- [x] [예외] 6개의 숫자가 아닌 경우.
- [x] [예외] 오름차순이 아닌 경우.

### 3. 당첨 내역 저장

- [x] 당첨 여부를 비교한다.
- [x] 로또 리스트에서 로또 하나씩 사용자가 구매한 로또 번호와 당첨 번호를 비교한다.
- [x] 몇등을 했는지 당첨 내역을 구한다.

- [x] 수익률을 구한다.
- [x] 당첨 내역을 토대로 수익을 구한다.

- [x] 사용자가 잘못된 값을 입력할 경우
- [x] `IllegalArgumentException`을 발생시킨다.
- [x] "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.
- [x] `Exception`이 아닌 `IllegalArgumentException`, `IllegalStateException` 등과 같은 명확한 유형을 처리한다.
### 4. 출력
- [x] n개일치가 몇 번 있는지 출력한다.
- [x] 수익률을 출력한다.

# 입출력 요구 사항