diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..4eec78effa --- /dev/null +++ b/docs/README.md @@ -0,0 +1,62 @@ +공통 + +- 사용자가 잘못된 값을 입력할 경우 throw문을 사용해 예외를 발생시킨다. 그런 다음, "[ERROR]"로 시작하는 에러 메시지를 출력하고 해당 부분부터 입력을 다시 받는다. + +🚀 구현 기능 목록 + +1. 구입 금액을 입력 받는다. + +- 구입 금액은 1,000원 단위로 입력 받으며 1,000원으로 나누어 떨어지지 않는 경우 예외 처리한다. +- 1000원 이상 처리 +- 숫자 아닌 값 처리 + +2. 금액에 맞는 로또 개수 구매 문구를 출력한다. + +3. 구매 가능 개수에 만큼 로또 세트(임의의 숫자 6개)를 선택한다. + +- 각 숫자는 1~45사이의 값이다. +- 각 수자는 로또 1개의 세트에서 중복되어서는 안된다. + +4. 3에서 선택된 로또 세트를 줄바꿈하여 출력한다. + +- 오름차순으로 정렬하여 출력한다.ex) [8, 21, 23, 41, 42, 43] + +5. 당첨 번호를 입력 받는다. 번호는 쉼표(,)를 기준으로 구분한다. + +- 1~45 사이의 값이어야 한다. +- 중복되면 안된다. +- 숫자 아닌 값 처리 + +6. 보너스 번호를 입력 받는다. + +- 1~45 사이의 값이어야 한다. +- 5에서 선택된 번호와 중복되면 안된다. + +* 숫자 아닌 값 처리 + +7. 당첨 내역을 출력한다. + +- 당첨 기준은 다음과 같다. + - 당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다. - 1등: 6개 번호 일치 / 2,000,000,000원 - 2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원 - 3등: 5개 번호 일치 / 1,500,000원 + - 4등: 4개 번호 일치 / 50,000원 - 5등: 3개 번호 일치 / 5,000원 + - 출력 양식 예시 + ``` + 3개 일치 (5,000원) - 1개 + 4개 일치 (50,000원) - 0개 + 5개 일치 (1,500,000원) - 0개 + 5개 일치, 보너스 볼 일치 (30,000,000원) - 0개 + 6개 일치 (2,000,000,000원) - 0개 + ``` +- 위와 같이 당첨 기준 및 당첨 개수를 출력한다. + +8. 수익률을 계산하여 출력한다. + +- 수익률은 소수점 둘째 자리에서 반올림한다. (ex. 100.0%, 51.5%, 1,000,000.0%) + +개발 참고 + +- indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다. +- 함수(또는 메서드)의 길이가 15라인을 넘어가지 않도록 구현한다. +- else를 지양한다. +- 도메인 로직에 단위 테스트를 구현해야 한다. 단 UI는 제외 +- @woowacourse/mission-utils에서 제공하는 Random 및 Console API를 사용하여 구현해야 한다. diff --git a/src/App.js b/src/App.js index c38b30d5b2..51338a4118 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,9 @@ class App { - async play() {} + async play() { + const purchaseMoney = await Console.readLineAsync( + "구입금액을 입력해 주세요." + ); + } } export default App;