From dc4c9f200071c746fd38780ad1a567d81f3848d7 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 6 Jul 2023 18:29:32 +0900 Subject: [PATCH 01/27] =?UTF-8?q?docs(README)=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20=EB=AA=A9=EB=A1=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 106 +++++++-------------------------- src/main/java/lotto/Lotto.java | 2 + 2 files changed, 24 insertions(+), 84 deletions(-) create mode 100644 src/main/java/lotto/Lotto.java diff --git a/README.md b/README.md index 81b03cdba2..84941f44b6 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,3 @@ -# ๊ณผ์ œ - ๋กœ๋˜ - -## ๐Ÿ” ์ง„ํ–‰ ๋ฐฉ์‹ - -- ๊ณผ์ œ๋Š” **๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ, ๊ณผ์ œ ์ง„ํ–‰ ์š”๊ตฌ ์‚ฌํ•ญ** ์„ธ ๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. -- ์„ธ ๊ฐœ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•œ๋‹ค. ํŠนํžˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ , ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ปค๋ฐ‹ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค. -- ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์— ๊ธฐ์žฌ๋˜์ง€ ์•Š์€ ๋‚ด์šฉ์€ ์Šค์Šค๋กœ ํŒ๋‹จํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. - ---- - -## ๐Ÿ“ˆ ๊ณผ์ œ ์ง„ํ–‰ ๋ฐ ์ œ์ถœ ๋ฐฉ๋ฒ• - -- ๊ณผ์ œ๋Š” [java-lotto](https://github.com/LandvibeDev/java-lotto) ์ €์žฅ์†Œ๋ฅผ Fork/Cloneํ•ด ์‹œ์ž‘ํ•œ๋‹ค. -- **๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— java-baseball-precourse/README.md ํŒŒ์ผ์— ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌ**ํ•ด ์ถ”๊ฐ€ํ•œ๋‹ค. -- **Git์˜ ์ปค๋ฐ‹ ๋‹จ์œ„๋Š” ์•ž ๋‹จ๊ณ„์—์„œ README.md ํŒŒ์ผ์— ์ •๋ฆฌํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋‹จ์œ„**๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค. - - [AngularJS Commit Message Conventions](https://gist.github.com/stephenparish/9941e89d80e2bc58a153) ์ฐธ๊ณ ํ•ด commit log๋ฅผ ๋‚จ๊ธด๋‹ค. -- ๊ณผ์ œ ์ง„ํ–‰ ๋ฐ ์ œ์ถœ ๋ฐฉ๋ฒ•์€ [์šฐ์•„ํ•œ์ฝ”์Šค ๊ณผ์ œ ์ œ์ถœ ๋ฌธ์„œ](https://github.com/woowacourse/woowacourse-docs/tree/master/precourse) ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค. - - base repository๋ฅผ `LandvibeDev/java-lotto`๋กœ ์ง€์ •ํ•ด์„œ PR ์ƒ์„ฑํ•˜๋ฉด๋จ - -
- -### ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๊ฐ€์ด๋“œ - -- ํ„ฐ๋ฏธ๋„์—์„œ `java -version`์„ ์‹คํ–‰ํ•˜์—ฌ Java ๋ฒ„์ „์ด 14์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ๋˜๋Š” Eclipse ๋˜๋Š” IntelliJ IDEA์™€ ๊ฐ™์€ IDE์—์„œ Java 14๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. -- ํ„ฐ๋ฏธ๋„์—์„œ Mac ๋˜๋Š” Linux ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ `./gradlew clean test` ๋ช…๋ น์„ ์‹คํ–‰ ํ•˜๊ณ , - Windows ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ `gradlew.bat clean test` ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ๋™์ž‘ ํ•˜๋Š”์ง€ ๋งŒ ํ™•์ธ(ํ…Œ์ŠคํŠธ๋Š” ์‹คํŒจ). - ---- - ## ๐Ÿš€ ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ ๋กœ๋˜ ๊ฒŒ์ž„ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋กœ๋˜ ๊ฒŒ์ž„์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. @@ -141,43 +112,28 @@ ์ด ์ˆ˜์ต๋ฅ ์€ 62.5%์ž…๋‹ˆ๋‹ค. ``` ---- - -## ๐ŸŽฏ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ - -- JDK 14 ๋ฒ„์ „์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. -- ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์˜ ์‹œ์ž‘์ ์€ `Application`์˜ `main()`์ด๋‹ค. -- `build.gradle` ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ณ , ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. -- [Java ์ฝ”๋“œ ์ปจ๋ฒค์…˜](https://naver.github.io/hackday-conventions-java/) ๊ฐ€์ด๋“œ๋ฅผ ์ค€์ˆ˜ํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ๋‹ค. -- ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ `System.exit()`๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค. -- ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„์ด ์™„๋ฃŒ๋˜๋ฉด `ApplicationTest`์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณตํ•ด์•ผ ํ•œ๋‹ค. -- ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์—์„œ ๋‹ฌ๋ฆฌ ๋ช…์‹œํ•˜์ง€ ์•Š๋Š” ํ•œ ํŒŒ์ผ, ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ด๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค. -- indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ 3์ด ๋„˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. 2๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•œ๋‹ค. - - ์˜ˆ๋ฅผ ๋“ค์–ด while๋ฌธ ์•ˆ์— if๋ฌธ์ด ์žˆ์œผ๋ฉด ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” 2์ด๋‹ค. - - ํžŒํŠธ: indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ ์ค„์ด๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์„œ๋“œ)๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋œ๋‹ค. -- 3ํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. -- ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์„œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ํ•˜๋„๋ก ์ตœ๋Œ€ํ•œ ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด๋ผ. -- JUnit 5์™€ AssertJ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณธ์ธ์ด ์ •๋ฆฌํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก์ด ์ •์ƒ ๋™์ž‘ํ•จ์„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋กœ ํ™•์ธํ•œ๋‹ค. -- ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์„œ๋“œ)์˜ ๊ธธ์ด๊ฐ€ 15๋ผ์ธ์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. - - ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์„œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ž˜ ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. -- else ์˜ˆ์•ฝ์–ด๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. - - ํžŒํŠธ: if ์กฐ๊ฑด์ ˆ์—์„œ ๊ฐ’์„ returnํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด else๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. - - else๋ฅผ ์“ฐ์ง€ ๋ง๋ผ๊ณ  ํ•˜๋‹ˆ switch/case๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ switch/case๋„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. -- Java Enum์„ ์ ์šฉํ•œ๋‹ค. -- ๋„๋ฉ”์ธ ๋กœ์ง์— ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ, UI(System.out, System.in, Scanner) ๋กœ์ง์€ ์ œ์™ธํ•œ๋‹ค. - - ํ•ต์‹ฌ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ์ฝ”๋“œ์™€ UI๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋กœ์ง์„ ๋ถ„๋ฆฌํ•ด ๊ตฌํ˜„ํ•œ๋‹ค. - -### ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - -- [`camp.nextstep.edu.missionutils`](https://github.com/woowacourse-projects/mission-utils)์—์„œ ์ œ๊ณตํ•˜๋Š” `Randoms` ๋ฐ `Console` API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. - - Random ๊ฐ’ ์ถ”์ถœ์€ `camp.nextstep.edu.missionutils.Randoms`์˜ `pickUniqueNumbersInRange()`๋ฅผ ํ™œ์šฉํ•œ๋‹ค. - - ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ฐ’์€ `camp.nextstep.edu.missionutils.Console`์˜ `readLine()`์„ ํ™œ์šฉํ•œ๋‹ค. - -#### ์‚ฌ์šฉ ์˜ˆ์‹œ - -```java -List numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6); -``` +### ๊ธฐ๋Šฅ ๊ตฌํ˜„ + +1. ๊ตฌ์ž… ๊ธˆ์•ก ์ž…๋ ฅ๋ฐ›๊ธฐ + - 1000์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๊ฐ’ ์ž…๋ ฅ์‹œ `IllegalArgumentException`๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , "[ERROR]"๋กœ ์‹œ์ž‘ํ•˜๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ ํ›„ ์ข…๋ฃŒ +2. ๋กœ๋˜ ์ƒ์„ฑ + - 1~45 ๋ฒ”์œ„์˜ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” 6๊ฐœ์˜ ์ˆซ์ž + - pickUniqueNumbersInRange ์‚ฌ์šฉ +3. ๋กœ๋˜ ์ˆซ์ž ๊ฐ๊ฐ ์ถœ๋ ฅ + - ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ํ˜•์‹์— ๋งž๊ฒŒ +4. ๋‹น์ฒจ ๋ฒˆํ˜ธ ์ž…๋ ฅ๋ฐ›๊ธฐ + - 1~45 ๋ฒ”์œ„์˜ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” 6๊ฐœ์˜ ์ˆซ์ž + - ',' ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ +5. ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ ์ž…๋ ฅ + - 1~45 ๋ฒ”์œ„์˜ ๊ธฐ์กด ๋กœ๋˜๊ฐ’์— ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” 1๊ฐœ์˜ ์ˆซ์ž +6. ๋‹น์ฒจ ํ†ต๊ณ„ ์ถœ๋ ฅ + - 1๋“ฑ: 6๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 2,000,000,000์› + - 2๋“ฑ: 5๊ฐœ ๋ฒˆํ˜ธ + ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ ์ผ์น˜ / 30,000,000์› + - 3๋“ฑ: 5๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 1,500,000์› + - 4๋“ฑ: 4๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 50,000์› + - 5๋“ฑ: 3๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 5,000์› +7. ์ด ์ˆ˜์ต๋ฅ  ๊ณ„์‚ฐ + - ๋‹น์ฒจ๊ธˆ/๊ตฌ์ž…๊ธˆ์•ก * 100 ### Lotto ํด๋ž˜์Šค @@ -187,21 +143,3 @@ List numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6); - `Lotto`์— ํ•„๋“œ(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค. - `Lotto`์˜ ํŒจํ‚ค์ง€ ๋ณ€๊ฒฝ์€ ๊ฐ€๋Šฅํ•˜๋‹ค. -```java -public class Lotto { - private final List numbers; - - public Lotto(List numbers) { - validate(numbers); - this.numbers = numbers; - } - - private void validate(List numbers) { - if (numbers.size() != 6) { - throw new IllegalArgumentException(); - } - } - - // TODO: ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ -} -``` diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java new file mode 100644 index 0000000000..75110f86c8 --- /dev/null +++ b/src/main/java/lotto/Lotto.java @@ -0,0 +1,2 @@ +package lotto;public class Lotto { +} From 7dd70d80c8bcb43206b6d8098c0b4ab12f20055b Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 6 Jul 2023 18:46:28 +0900 Subject: [PATCH 02/27] feat(Lotto) add Lotto class --- src/main/java/lotto/Lotto.java | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java index 75110f86c8..6a0c7022b5 100644 --- a/src/main/java/lotto/Lotto.java +++ b/src/main/java/lotto/Lotto.java @@ -1,2 +1,30 @@ -package lotto;public class Lotto { +package lotto; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +public class Lotto { + private final List numbers; + + public Lotto(List numbers) { + validate(numbers); + this.numbers = numbers; + } + + private void validate(List numbers) { + if (numbers.size() != 6) { + throw new IllegalArgumentException(); + } + } + + @Override + public String toString() { + ArrayList numbers = new ArrayList<>(this.numbers); + Collections.sort(numbers); + return numbers.toString(); + } + + // TODO: ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ } From 01b03aeb57adff3bb8b6c90fe14487db36dec5e5 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 18:52:53 +0900 Subject: [PATCH 03/27] feat(Lotto): overiding toString() and calculate correcrtCount --- src/main/java/lotto/Application.java | 22 ++++++++++++++++++++-- src/main/java/lotto/Lotto.java | 18 ++++++++++++++++-- src/main/java/lotto/WinningNumber.java | 2 ++ 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 src/main/java/lotto/WinningNumber.java diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/Application.java index 367ee30584..b4c261e3c6 100644 --- a/src/main/java/lotto/Application.java +++ b/src/main/java/lotto/Application.java @@ -1,7 +1,25 @@ package lotto; +import camp.nextstep.edu.missionutils.Randoms; +import camp.nextstep.edu.missionutils.Console; + +import java.util.List; public class Application { public static void main(String[] args) { - // TODO: ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„ + + System.out.println("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + + Integer coin = Integer.parseInt(Console.readLine())/1000; + Lotto[] lottos = new Lotto[coin]; + + System.out.println(coin + "๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."); + for(int i=0; i numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6); + lottos[i] = new Lotto(numbers); + System.out.println(lottos[i].toString()); + } + + } -} \ No newline at end of file +} + diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java index 6a0c7022b5..1386e5c522 100644 --- a/src/main/java/lotto/Lotto.java +++ b/src/main/java/lotto/Lotto.java @@ -1,7 +1,6 @@ package lotto; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; @@ -17,6 +16,7 @@ private void validate(List numbers) { if (numbers.size() != 6) { throw new IllegalArgumentException(); } + } @Override @@ -26,5 +26,19 @@ public String toString() { return numbers.toString(); } - // TODO: ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ + public int calculateCorrectCount(List correctNumberList){ + int correct=0; + for(int i=0; i Date: Fri, 7 Jul 2023 19:44:58 +0900 Subject: [PATCH 04/27] feet(ExceptionController) add ExceptionController --- src/main/java/lotto/ExceptionController.java | 20 ++++++++++++++++++++ src/main/java/lotto/LottoGame.java | 2 ++ src/main/java/lotto/LottoList.java | 2 ++ 3 files changed, 24 insertions(+) create mode 100644 src/main/java/lotto/ExceptionController.java create mode 100644 src/main/java/lotto/LottoGame.java create mode 100644 src/main/java/lotto/LottoList.java diff --git a/src/main/java/lotto/ExceptionController.java b/src/main/java/lotto/ExceptionController.java new file mode 100644 index 0000000000..0206be8f87 --- /dev/null +++ b/src/main/java/lotto/ExceptionController.java @@ -0,0 +1,20 @@ +package lotto; + +public class ExceptionController { + public void noIntegerValueExeption(String Numbers){ + for(int i=0; i9){ + System.out.println("[ERROR] : ์ •์ˆ˜๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค."); + throw new IllegalArgumentException(); + } + } + } + + public void noValidAmount(String amount){ + if(Integer.parseInt(amount)%1000 != 0){ + System.out.println("[ERROR] : ์ฒœ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”."); + throw new IllegalArgumentException(); + } + } +} diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java new file mode 100644 index 0000000000..b935cd2bfa --- /dev/null +++ b/src/main/java/lotto/LottoGame.java @@ -0,0 +1,2 @@ +package lotto;public class LottoGame { +} diff --git a/src/main/java/lotto/LottoList.java b/src/main/java/lotto/LottoList.java new file mode 100644 index 0000000000..98862db794 --- /dev/null +++ b/src/main/java/lotto/LottoList.java @@ -0,0 +1,2 @@ +package lotto;public class LottoList { +} From 7a90b250885dcdcef00daaa54f97dc1dbd9808b5 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 19:46:19 +0900 Subject: [PATCH 05/27] feat(LottoList): add LottoList class --- src/main/java/lotto/LottoList.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/LottoList.java b/src/main/java/lotto/LottoList.java index 98862db794..9a515d8442 100644 --- a/src/main/java/lotto/LottoList.java +++ b/src/main/java/lotto/LottoList.java @@ -1,2 +1,22 @@ -package lotto;public class LottoList { +package lotto; + +import camp.nextstep.edu.missionutils.Randoms; + +import java.util.List; + +public class LottoList { + Lotto[] lottos; + int coin; + LottoList(int coin){ + this.coin = coin; + this.lottos = new Lotto[coin]; + } + + public void setLottoList() { + for (int i = 0; i < coin; i++) { + List numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6); + lottos[i] = new Lotto(numbers); + System.out.println(lottos[i].toString()); + } + } } From a296f4bfa496721d440f3f9d0b574fcecc39219b Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 19:47:14 +0900 Subject: [PATCH 06/27] fear(LottoGame) add LottoGame class --- src/main/java/lotto/LottoGame.java | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index b935cd2bfa..084c094846 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -1,2 +1,25 @@ -package lotto;public class LottoGame { +package lotto; + +import camp.nextstep.edu.missionutils.Console; + +public class LottoGame { + ExceptionController exceptionController = new ExceptionController(); + public void run(){ + int amount = getPurchaseAmount(); + LottoList lottoList = new LottoList(amount/1000); + lottoList.setLottoList(); + } + + public int getPurchaseAmount(){ + System.out.println("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + + String amount = Console.readLine(); + exceptionController.noIntegerValueExeption(amount); + exceptionController.noValidAmount(amount); + + return Integer.parseInt(amount); + } + + + } From 0b08a53cd2eeef3ec4926f0665c30b0d77ab27bc Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 21:05:29 +0900 Subject: [PATCH 07/27] feat(WinningNumbers): add WinningNumbers class --- src/main/java/lotto/WinningNumber.java | 2 -- src/main/java/lotto/WinningNumbers.java | 36 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) delete mode 100644 src/main/java/lotto/WinningNumber.java create mode 100644 src/main/java/lotto/WinningNumbers.java diff --git a/src/main/java/lotto/WinningNumber.java b/src/main/java/lotto/WinningNumber.java deleted file mode 100644 index 46d135057a..0000000000 --- a/src/main/java/lotto/WinningNumber.java +++ /dev/null @@ -1,2 +0,0 @@ -package lotto;public class WinningNumber { -} diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/lotto/WinningNumbers.java new file mode 100644 index 0000000000..d3fd01579e --- /dev/null +++ b/src/main/java/lotto/WinningNumbers.java @@ -0,0 +1,36 @@ +package lotto; + +import camp.nextstep.edu.missionutils.Console; + +import java.util.ArrayList; +import java.util.List; + +public class WinningNumbers { + List winningNumberslist = new ArrayList<>(); + + WinningNumbers(){ + System.out.println("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + String winningNumbers = Console.readLine(); + setWinningNumberslist(winningNumbers); + } + public void setWinningNumberslist(String winningNumbers){ + String correctString = ""; + + for(int i=0; i Date: Fri, 7 Jul 2023 21:09:13 +0900 Subject: [PATCH 08/27] styl(Lottolist): refunction setLottoList() --- src/main/java/lotto/LottoList.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/lotto/LottoList.java b/src/main/java/lotto/LottoList.java index 9a515d8442..0abbed7f37 100644 --- a/src/main/java/lotto/LottoList.java +++ b/src/main/java/lotto/LottoList.java @@ -6,13 +6,15 @@ public class LottoList { Lotto[] lottos; - int coin; + LottoList(int coin){ - this.coin = coin; + System.out.println(coin + "๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."); + this.lottos = new Lotto[coin]; + printLottoList(coin); } - public void setLottoList() { + public void printLottoList(int coin) { for (int i = 0; i < coin; i++) { List numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6); lottos[i] = new Lotto(numbers); From 335b415cd40062639c8dd13df8b85afaa6ffcf37 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 21:10:10 +0900 Subject: [PATCH 09/27] styl(Lottolist): refunction setLottoList() --- src/main/java/lotto/LottoList.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/lotto/LottoList.java b/src/main/java/lotto/LottoList.java index 0abbed7f37..8a070c4dab 100644 --- a/src/main/java/lotto/LottoList.java +++ b/src/main/java/lotto/LottoList.java @@ -11,10 +11,10 @@ public class LottoList { System.out.println(coin + "๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."); this.lottos = new Lotto[coin]; - printLottoList(coin); + setLottoList(coin); } - public void printLottoList(int coin) { + public void setLottoList(int coin) { for (int i = 0; i < coin; i++) { List numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6); lottos[i] = new Lotto(numbers); From 9f153e6fc894e8f248a3989e0a1ba435c9bfbe3f Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 21:11:29 +0900 Subject: [PATCH 10/27] ref(LottoGame): refunction run() and members --- src/main/java/lotto/LottoGame.java | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index 084c094846..81bebc79f3 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -3,23 +3,22 @@ import camp.nextstep.edu.missionutils.Console; public class LottoGame { - ExceptionController exceptionController = new ExceptionController(); - public void run(){ - int amount = getPurchaseAmount(); - LottoList lottoList = new LottoList(amount/1000); - lottoList.setLottoList(); - } + LottoList lottoList; + WinningNumbers winningNumbers; + int coin; - public int getPurchaseAmount(){ + LottoGame(){ System.out.println("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); - String amount = Console.readLine(); - exceptionController.noIntegerValueExeption(amount); - exceptionController.noValidAmount(amount); - - return Integer.parseInt(amount); - } + ExceptionController.noIntegerValueException(amount); + ExceptionController.noValidAmountException(amount); + coin = Integer.parseInt(amount)/1000; + } + public void run(){ + lottoList = new LottoList(coin); + winningNumbers = new WinningNumbers(); + } } From c88e085c8c964dfe8bf544547e028edf228f08f9 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 21:19:04 +0900 Subject: [PATCH 11/27] feat(WinningNumber): add bonusNumber member and setBonusNumber() --- src/main/java/lotto/WinningNumbers.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/lotto/WinningNumbers.java index d3fd01579e..918979ed52 100644 --- a/src/main/java/lotto/WinningNumbers.java +++ b/src/main/java/lotto/WinningNumbers.java @@ -7,13 +7,15 @@ public class WinningNumbers { List winningNumberslist = new ArrayList<>(); + int bonusNumber; WinningNumbers(){ System.out.println("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); String winningNumbers = Console.readLine(); setWinningNumberslist(winningNumbers); + setBonusNumber(); } - public void setWinningNumberslist(String winningNumbers){ + private void setWinningNumberslist(String winningNumbers){ String correctString = ""; for(int i=0; i Date: Fri, 7 Jul 2023 21:19:44 +0900 Subject: [PATCH 12/27] =?UTF-8?q?=EC=A4=91=EA=B0=84=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 115 +------------------ build.gradle | 2 +- src/main/java/lotto/Application.java | 74 ++++++++++-- src/main/java/lotto/ExceptionController.java | 21 +++- src/main/java/lotto/Lotto.java | 4 +- 5 files changed, 89 insertions(+), 127 deletions(-) diff --git a/README.md b/README.md index 84941f44b6..976554e5e7 100644 --- a/README.md +++ b/README.md @@ -1,117 +1,3 @@ -## ๐Ÿš€ ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ - -๋กœ๋˜ ๊ฒŒ์ž„ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋กœ๋˜ ๊ฒŒ์ž„์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. - -``` -- ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ ์ˆซ์ž ๋ฒ”์œ„๋Š” 1~45๊นŒ์ง€์ด๋‹ค. -- 1๊ฐœ์˜ ๋กœ๋˜๋ฅผ ๋ฐœํ–‰ํ•  ๋•Œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” 6๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋ฝ‘๋Š”๋‹ค. -- ๋‹น์ฒจ ๋ฒˆํ˜ธ ์ถ”์ฒจ ์‹œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ˆซ์ž 6๊ฐœ์™€ ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ 1๊ฐœ๋ฅผ ๋ฝ‘๋Š”๋‹ค. -- ๋‹น์ฒจ์€ 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์› -``` - -- ๋กœ๋˜ ๊ตฌ์ž… ๊ธˆ์•ก์„ ์ž…๋ ฅํ•˜๋ฉด ๊ตฌ์ž… ๊ธˆ์•ก์— ํ•ด๋‹นํ•˜๋Š” ๋งŒํผ ๋กœ๋˜๋ฅผ ๋ฐœํ–‰ํ•ด์•ผ ํ•œ๋‹ค. -- ๋กœ๋˜ 1์žฅ์˜ ๊ฐ€๊ฒฉ์€ 1,000์›์ด๋‹ค. -- ๋‹น์ฒจ ๋ฒˆํ˜ธ์™€ ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. -- ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋งคํ•œ ๋กœ๋˜ ๋ฒˆํ˜ธ์™€ ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋‹น์ฒจ ๋‚ด์—ญ ๋ฐ ์ˆ˜์ต๋ฅ ์„ ์ถœ๋ ฅํ•˜๊ณ  ๋กœ๋˜ ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•œ๋‹ค. -- ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ๊ฐ’์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ `IllegalArgumentException`๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , "[ERROR]"๋กœ ์‹œ์ž‘ํ•˜๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ ํ›„ ์ข…๋ฃŒํ•œ๋‹ค. - -## โœ๐Ÿป ์ž…์ถœ๋ ฅ ์š”๊ตฌ์‚ฌํ•ญ - -### โŒจ๏ธ ์ž…๋ ฅ - -- ๋กœ๋˜ ๊ตฌ์ž… ๊ธˆ์•ก์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. ๊ตฌ์ž… ๊ธˆ์•ก์€ 1,000์› ๋‹จ์œ„๋กœ ์ž…๋ ฅ ๋ฐ›์œผ๋ฉฐ 1,000์›์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•œ๋‹ค. - -``` -14000 -``` - -- ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. ๋ฒˆํ˜ธ๋Š” ์‰ผํ‘œ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. - -``` -1,2,3,4,5,6 -``` - -- ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. - -``` -7 -``` - -### ๐Ÿ–ฅ ์ถœ๋ ฅ - -- ๋ฐœํ–‰ํ•œ ๋กœ๋˜ ์ˆ˜๋Ÿ‰ ๋ฐ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋กœ๋˜ ๋ฒˆํ˜ธ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋ณด์—ฌ์ค€๋‹ค. - -``` -8๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค. -[8, 21, 23, 41, 42, 43] -[3, 5, 11, 16, 32, 38] -[7, 11, 16, 35, 36, 44] -[1, 8, 11, 31, 41, 42] -[13, 14, 16, 38, 42, 45] -[7, 11, 30, 40, 42, 43] -[2, 13, 22, 32, 38, 45] -[1, 3, 5, 14, 22, 45] -``` - -- ๋‹น์ฒจ ๋‚ด์—ญ์„ ์ถœ๋ ฅํ•œ๋‹ค. - -``` -3๊ฐœ ์ผ์น˜ (5,000์›) - 1๊ฐœ -4๊ฐœ ์ผ์น˜ (50,000์›) - 0๊ฐœ -5๊ฐœ ์ผ์น˜ (1,500,000์›) - 0๊ฐœ -5๊ฐœ ์ผ์น˜, ๋ณด๋„ˆ์Šค ๋ณผ ์ผ์น˜ (30,000,000์›) - 0๊ฐœ -6๊ฐœ ์ผ์น˜ (2,000,000,000์›) - 0๊ฐœ -``` - -- ์ˆ˜์ต๋ฅ ์€ ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•œ๋‹ค. (ex. 100.0%, 51.5%, 1,000,000.0%) - -``` -์ด ์ˆ˜์ต๋ฅ ์€ 62.5%์ž…๋‹ˆ๋‹ค. -``` - -- ์˜ˆ์™ธ ์ƒํ™ฉ ์‹œ ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๋Š” "[ERROR]"๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค. - -``` -[ERROR] ๋กœ๋˜ ๋ฒˆํ˜ธ๋Š” 1๋ถ€ํ„ฐ 45 ์‚ฌ์ด์˜ ์ˆซ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. -``` - -### ๐Ÿ’ป ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ - -``` -๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. -8000 - -8๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค. -[8, 21, 23, 41, 42, 43] -[3, 5, 11, 16, 32, 38] -[7, 11, 16, 35, 36, 44] -[1, 8, 11, 31, 41, 42] -[13, 14, 16, 38, 42, 45] -[7, 11, 30, 40, 42, 43] -[2, 13, 22, 32, 38, 45] -[1, 3, 5, 14, 22, 45] - -๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. -1,2,3,4,5,6 - -๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. -7 - -๋‹น์ฒจ ํ†ต๊ณ„ ---- -3๊ฐœ ์ผ์น˜ (5,000์›) - 1๊ฐœ -4๊ฐœ ์ผ์น˜ (50,000์›) - 0๊ฐœ -5๊ฐœ ์ผ์น˜ (1,500,000์›) - 0๊ฐœ -5๊ฐœ ์ผ์น˜, ๋ณด๋„ˆ์Šค ๋ณผ ์ผ์น˜ (30,000,000์›) - 0๊ฐœ -6๊ฐœ ์ผ์น˜ (2,000,000,000์›) - 0๊ฐœ -์ด ์ˆ˜์ต๋ฅ ์€ 62.5%์ž…๋‹ˆ๋‹ค. -``` - ### ๊ธฐ๋Šฅ ๊ตฌํ˜„ 1. ๊ตฌ์ž… ๊ธˆ์•ก ์ž…๋ ฅ๋ฐ›๊ธฐ @@ -134,6 +20,7 @@ - 5๋“ฑ: 3๊ฐœ ๋ฒˆํ˜ธ ์ผ์น˜ / 5,000์› 7. ์ด ์ˆ˜์ต๋ฅ  ๊ณ„์‚ฐ - ๋‹น์ฒจ๊ธˆ/๊ตฌ์ž…๊ธˆ์•ก * 100 + - ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ ### Lotto ํด๋ž˜์Šค diff --git a/build.gradle b/build.gradle index 1cd662974c..9d087b142e 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,7 @@ dependencies { java { toolchain { - languageVersion = JavaLanguageVersion.of(14) + languageVersion = JavaLanguageVersion.of(11) } } diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/Application.java index b4c261e3c6..de0710e3f4 100644 --- a/src/main/java/lotto/Application.java +++ b/src/main/java/lotto/Application.java @@ -2,24 +2,82 @@ import camp.nextstep.edu.missionutils.Randoms; import camp.nextstep.edu.missionutils.Console; +import java.util.ArrayList; import java.util.List; public class Application { public static void main(String[] args) { - System.out.println("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + LottoGame lottoGame = new LottoGame(); + lottoGame.run(); - Integer coin = Integer.parseInt(Console.readLine())/1000; - Lotto[] lottos = new Lotto[coin]; + /* + //๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ ์ž…๋ ฅ(+์˜ˆ์™ธ์ฒ˜๋ฆฌ) + System.out.println("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + String bonusNumberStr = Console.readLine(); + for(int i=0; i9){ + System.out.println("[ERROR]"); + throw new IllegalArgumentException(); + } + } + + int bonusNumber = Integer.parseInt(bonusNumberStr); - System.out.println(coin + "๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."); - for(int i=0; i numbers = Randoms.pickUniqueNumbersInRange(1, 45, 6); - lottos[i] = new Lotto(numbers); - System.out.println(lottos[i].toString()); + if(bonusNumber<1 || bonusNumber>45){ + System.out.println("[ERROR]"); + throw new IllegalArgumentException(); } + if(correctNumberslist.contains(bonusNumber)){ + System.out.println("[ERROR]"); + throw new IllegalArgumentException(); + } + + //๋‹น์ฒจ ํ†ต๊ณ„ ๊ณ„์‚ฐ + int countThree = 0, countFour = 0, countFive = 0, countSix = 0, countFiveAndBonus = 0; + int totalIncome = 0; + for(int i=0; i9){ @@ -11,10 +14,24 @@ public void noIntegerValueExeption(String Numbers){ } } - public void noValidAmount(String amount){ + public static void noValidAmountException(String amount){ if(Integer.parseInt(amount)%1000 != 0){ System.out.println("[ERROR] : ์ฒœ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”."); throw new IllegalArgumentException(); } } + + public static void noValidLottoNumberException(int number){ + if(number<1 || number>45){ + System.out.println("[ERROR] : ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜์˜€์Šต๋‹ˆ๋‹ค."); + throw new IllegalArgumentException(); + } + } + + public static void overlapNumberException(List winningNumberList, int correctInteger){ + if(winningNumberList.contains(correctInteger)){ + System.out.println("[ERROR] : ์ค‘๋ณต๋˜๋Š” ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค."); + throw new IllegalArgumentException(); + } + } } diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java index 1386e5c522..f1677b9141 100644 --- a/src/main/java/lotto/Lotto.java +++ b/src/main/java/lotto/Lotto.java @@ -26,7 +26,7 @@ public String toString() { return numbers.toString(); } - public int calculateCorrectCount(List correctNumberList){ + /*public int calculateCorrectCount(List correctNumberList){ int correct=0; for(int i=0; i Date: Fri, 7 Jul 2023 21:40:21 +0900 Subject: [PATCH 13/27] feat(WinningNumbers) add setBonusNumber Exception func --- src/main/java/lotto/Calculator.java | 2 ++ src/main/java/lotto/WinningNumbers.java | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/main/java/lotto/Calculator.java diff --git a/src/main/java/lotto/Calculator.java b/src/main/java/lotto/Calculator.java new file mode 100644 index 0000000000..929cfbba36 --- /dev/null +++ b/src/main/java/lotto/Calculator.java @@ -0,0 +1,2 @@ +package lotto;public class Calculator { +} diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/lotto/WinningNumbers.java index 918979ed52..6b10dd4c81 100644 --- a/src/main/java/lotto/WinningNumbers.java +++ b/src/main/java/lotto/WinningNumbers.java @@ -38,6 +38,13 @@ private void setWinningNumberslist(String winningNumbers){ private void setBonusNumber(){ System.out.println("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); - bonusNumber = Integer.parseInt(Console.readLine()); + String bonusNumberstr = Console.readLine(); + int bonusNumberint = Integer.parseInt(bonusNumberstr); + + ExceptionController.noValidAmountException(bonusNumberstr); + ExceptionController.noIntegerValueException(bonusNumberstr); + ExceptionController.overlapNumberException(winningNumberslist, bonusNumberint); + + bonusNumber = bonusNumberint; } } From 65e3e1c6976e39d88cfe5783fb1966badccca09e Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 21:42:29 +0900 Subject: [PATCH 14/27] fix(WinningNumbers): fix Exception bug --- src/main/java/lotto/WinningNumbers.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/lotto/WinningNumbers.java index 6b10dd4c81..4075f1375f 100644 --- a/src/main/java/lotto/WinningNumbers.java +++ b/src/main/java/lotto/WinningNumbers.java @@ -41,8 +41,8 @@ private void setBonusNumber(){ String bonusNumberstr = Console.readLine(); int bonusNumberint = Integer.parseInt(bonusNumberstr); - ExceptionController.noValidAmountException(bonusNumberstr); ExceptionController.noIntegerValueException(bonusNumberstr); + ExceptionController.noValidLottoNumberException(bonusNumberint); ExceptionController.overlapNumberException(winningNumberslist, bonusNumberint); bonusNumber = bonusNumberint; From 7274c48fce60922b8623db8c4ff66e4e32994686 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Fri, 7 Jul 2023 22:38:26 +0900 Subject: [PATCH 15/27] feat(Calculator): add several method member to Calculator class --- src/main/java/lotto/Calculator.java | 67 ++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/Calculator.java b/src/main/java/lotto/Calculator.java index 929cfbba36..570bd589ac 100644 --- a/src/main/java/lotto/Calculator.java +++ b/src/main/java/lotto/Calculator.java @@ -1,2 +1,67 @@ -package lotto;public class Calculator { +package lotto; + +public class Calculator { + LottoList lottoList; + WinningNumbers winningNumbers; + + int countThree = 0, countFour = 0, countFive = 0, countSix = 0, countFiveAndBonus = 0; + int totalIncome = 0; + + Calculator(LottoList lottoList, WinningNumbers winningNumbers){ + this.lottoList = lottoList; + this.winningNumbers = winningNumbers; + calculateCorrectCount(); + } + + public void calculateCorrectCount(){ + for(int i=0; i Date: Fri, 7 Jul 2023 22:43:48 +0900 Subject: [PATCH 16/27] =?UTF-8?q?=EC=A4=91=EA=B0=84=EC=A0=90=EA=B2=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/Application.java | 66 ---------------------------- src/main/java/lotto/Lotto.java | 8 ++-- src/main/java/lotto/LottoGame.java | 4 ++ 3 files changed, 8 insertions(+), 70 deletions(-) diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/Application.java index de0710e3f4..9962ccebaa 100644 --- a/src/main/java/lotto/Application.java +++ b/src/main/java/lotto/Application.java @@ -11,72 +11,6 @@ public static void main(String[] args) { LottoGame lottoGame = new LottoGame(); lottoGame.run(); - /* - //๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ ์ž…๋ ฅ(+์˜ˆ์™ธ์ฒ˜๋ฆฌ) - System.out.println("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); - String bonusNumberStr = Console.readLine(); - for(int i=0; i9){ - System.out.println("[ERROR]"); - throw new IllegalArgumentException(); - } - } - - int bonusNumber = Integer.parseInt(bonusNumberStr); - - if(bonusNumber<1 || bonusNumber>45){ - System.out.println("[ERROR]"); - throw new IllegalArgumentException(); - } - - if(correctNumberslist.contains(bonusNumber)){ - System.out.println("[ERROR]"); - throw new IllegalArgumentException(); - } - - //๋‹น์ฒจ ํ†ต๊ณ„ ๊ณ„์‚ฐ - int countThree = 0, countFour = 0, countFive = 0, countSix = 0, countFiveAndBonus = 0; - int totalIncome = 0; - for(int i=0; i correctNumberList){ + public int calculateCorrectCount(List winningNumberList){ int correct=0; - for(int i=0; i Date: Sat, 8 Jul 2023 11:38:03 +0900 Subject: [PATCH 17/27] feat(WinningNumbers): add validate() to handle exception, fix to push list winningNumber --- src/main/java/lotto/WinningNumbers.java | 34 ++++++++++++++++++------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/lotto/WinningNumbers.java index 4075f1375f..5cefeb5f55 100644 --- a/src/main/java/lotto/WinningNumbers.java +++ b/src/main/java/lotto/WinningNumbers.java @@ -8,31 +8,47 @@ public class WinningNumbers { List winningNumberslist = new ArrayList<>(); int bonusNumber; + String winningNumbers; WinningNumbers(){ System.out.println("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); - String winningNumbers = Console.readLine(); - setWinningNumberslist(winningNumbers); + winningNumbers = Console.readLine(); + setWinningNumberslist(); + validate(winningNumberslist); setBonusNumber(); } - private void setWinningNumberslist(String winningNumbers){ + private void setWinningNumberslist(){ String correctString = ""; for(int i=0; i winningNumberslist) { + if (winningNumberslist.size() != 6) { + System.out.println("6์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + throw new IllegalArgumentException(); } } From 7abc21e0bd426ba9351ac67a98a21b29a11f4440 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Sat, 8 Jul 2023 19:42:41 +0900 Subject: [PATCH 18/27] feat(Message): add Message Enum --- src/main/java/lotto/Application.java | 7 ------ src/main/java/lotto/ExceptionController.java | 9 ++++---- src/main/java/lotto/LottoGame.java | 2 +- src/main/java/lotto/Message.java | 24 ++++++++++++++++++++ src/main/java/lotto/WinningNumbers.java | 8 ++++--- 5 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 src/main/java/lotto/Message.java diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/Application.java index 9962ccebaa..e94e9e327b 100644 --- a/src/main/java/lotto/Application.java +++ b/src/main/java/lotto/Application.java @@ -1,10 +1,4 @@ package lotto; -import camp.nextstep.edu.missionutils.Randoms; -import camp.nextstep.edu.missionutils.Console; - -import java.util.ArrayList; -import java.util.List; - public class Application { public static void main(String[] args) { @@ -12,6 +6,5 @@ public static void main(String[] args) { lottoGame.run(); } - } diff --git a/src/main/java/lotto/ExceptionController.java b/src/main/java/lotto/ExceptionController.java index a56c797385..75657a6c3b 100644 --- a/src/main/java/lotto/ExceptionController.java +++ b/src/main/java/lotto/ExceptionController.java @@ -1,5 +1,6 @@ package lotto; +import static lotto.Message.*; import java.util.List; public class ExceptionController { @@ -8,7 +9,7 @@ public static void noIntegerValueException(String Numbers){ for(int i=0; i9){ - System.out.println("[ERROR] : ์ •์ˆ˜๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค."); + System.out.println(NOT_INTAGER_ERROR_MESSAGE); throw new IllegalArgumentException(); } } @@ -16,21 +17,21 @@ public static void noIntegerValueException(String Numbers){ public static void noValidAmountException(String amount){ if(Integer.parseInt(amount)%1000 != 0){ - System.out.println("[ERROR] : ์ฒœ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”."); + System.out.println(NOT_THOUSAND_ERROR_MESSAGE); throw new IllegalArgumentException(); } } public static void noValidLottoNumberException(int number){ if(number<1 || number>45){ - System.out.println("[ERROR] : ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜์˜€์Šต๋‹ˆ๋‹ค."); + System.out.println(NOT_OUTRANGE_NUMBER_ERROR_MESSAGE); throw new IllegalArgumentException(); } } public static void overlapNumberException(List winningNumberList, int correctInteger){ if(winningNumberList.contains(correctInteger)){ - System.out.println("[ERROR] : ์ค‘๋ณต๋˜๋Š” ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค."); + System.out.println(OVERLAP_NUMBER_ERROR_MESSAGE); throw new IllegalArgumentException(); } } diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index 029ca1a91b..f3894f0c1b 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -8,7 +8,7 @@ public class LottoGame { int coin; LottoGame(){ - System.out.println("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + System.out.println(Message.INPUT_PURCHASE_AMOUNT.getMessage()); String amount = Console.readLine(); ExceptionController.noIntegerValueException(amount); diff --git a/src/main/java/lotto/Message.java b/src/main/java/lotto/Message.java new file mode 100644 index 0000000000..ebe7b1b882 --- /dev/null +++ b/src/main/java/lotto/Message.java @@ -0,0 +1,24 @@ +package lotto; + +public enum Message { + INPUT_PURCHASE_AMOUNT("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), + INPUT_BONUS_NUMBER("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), + INPUT_SIXDIGIT_NUMVER("6์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), + NOT_INTAGER_ERROR_MESSAGE("[ERROR] : ์ •์ˆ˜๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค."), + NOT_THOUSAND_ERROR_MESSAGE("[ERROR] : ์ฒœ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”."), + NOT_OUTRANGE_NUMBER_ERROR_MESSAGE("[ERROR] : ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜์˜€์Šต๋‹ˆ๋‹ค."), + OVERLAP_NUMBER_ERROR_MESSAGE("[ERROR] : ์ค‘๋ณต๋˜๋Š” ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค."); + + + + + private final String message; + + Message(String message){ + this.message = message; + } + + public String getMessage(){ + return message; + } +} diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/lotto/WinningNumbers.java index 5cefeb5f55..8e98ff2a07 100644 --- a/src/main/java/lotto/WinningNumbers.java +++ b/src/main/java/lotto/WinningNumbers.java @@ -1,6 +1,7 @@ package lotto; import camp.nextstep.edu.missionutils.Console; +import static lotto.Message.*; import java.util.ArrayList; import java.util.List; @@ -11,7 +12,7 @@ public class WinningNumbers { String winningNumbers; WinningNumbers(){ - System.out.println("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + System.out.println(INPUT_PURCHASE_AMOUNT); winningNumbers = Console.readLine(); setWinningNumberslist(); validate(winningNumberslist); @@ -39,6 +40,7 @@ private void setWinningNumberslist(){ private void putCorrectNumber(String correctString){ int correctInteger = Integer.parseInt(correctString); + ExceptionController.noIntegerValueException(correctString); ExceptionController.noValidLottoNumberException(correctInteger); ExceptionController.overlapNumberException(winningNumberslist, correctInteger); @@ -47,13 +49,13 @@ private void putCorrectNumber(String correctString){ private void validate(List winningNumberslist) { if (winningNumberslist.size() != 6) { - System.out.println("6์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + System.out.println(INPUT_SIXDIGIT_NUMVER); throw new IllegalArgumentException(); } } private void setBonusNumber(){ - System.out.println("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + System.out.println(INPUT_BONUS_NUMBER.getMessage()); String bonusNumberstr = Console.readLine(); int bonusNumberint = Integer.parseInt(bonusNumberstr); From 92ce4e91ff4b28df7bdd4efdce2233f76b7e92fc Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Mon, 10 Jul 2023 18:11:41 +0900 Subject: [PATCH 19/27] styl(Calculator): compact printResult() --- src/main/java/lotto/Calculator.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/lotto/Calculator.java b/src/main/java/lotto/Calculator.java index 570bd589ac..6fc8493b82 100644 --- a/src/main/java/lotto/Calculator.java +++ b/src/main/java/lotto/Calculator.java @@ -50,13 +50,13 @@ private void countUp(int correctCount, boolean correctBonus){ } public void printResult(){ - System.out.println("๋‹น์ฒจ ํ†ต๊ณ„"); - System.out.println("---"); - System.out.println("3๊ฐœ ์ผ์น˜ (5,000์›) - " + countThree + "๊ฐœ"); - System.out.println("4๊ฐœ ์ผ์น˜ (50,000์›) - " + countFour + "๊ฐœ"); - System.out.println("5๊ฐœ ์ผ์น˜ (1,500,000์›) - " + countFive + "๊ฐœ"); - System.out.println("5๊ฐœ ์ผ์น˜, ๋ณด๋„ˆ์Šค ๋ณผ ์ผ์น˜ (30,000,000์›) - " + countFiveAndBonus + "๊ฐœ"); - System.out.println("6๊ฐœ ์ผ์น˜ (2,000,000,000์›) - " + countSix + "๊ฐœ"); + System.out.println("๋‹น์ฒจ ํ†ต๊ณ„\n" + + "---\n" + + "3๊ฐœ ์ผ์น˜ (5,000์›) - " + countThree + "๊ฐœ\n" + + "4๊ฐœ ์ผ์น˜ (50,000์›) - " + countFour + "๊ฐœ\n" + + "5๊ฐœ ์ผ์น˜ (1,500,000์›) - " + countFive + "๊ฐœ\n" + + "5๊ฐœ ์ผ์น˜, ๋ณด๋„ˆ์Šค ๋ณผ ์ผ์น˜ (30,000,000์›) - " + countFiveAndBonus + "๊ฐœ\n" + + "6๊ฐœ ์ผ์น˜ (2,000,000,000์›) - " + countSix + "๊ฐœ"); } public void printIncomeRate(int coin){ From d206c3afcc36b3d36a8ff3a251377b446cd478c9 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 15:36:03 +0900 Subject: [PATCH 20/27] ref(valodator): refactored validator pakage for Exception controller --- build.gradle | 1 + src/main/java/lotto/ExceptionController.java | 38 ----------------- src/main/java/lotto/Lotto.java | 11 ++--- src/main/java/lotto/LottoGame.java | 10 ++++- src/main/java/lotto/Message.java | 9 +--- src/main/java/lotto/WinningNumbers.java | 36 ++++++++-------- src/main/java/validator/ErrorMessage.java | 19 +++++++++ .../java/validator/ExceptionController.java | 41 +++++++++++++++++++ 8 files changed, 92 insertions(+), 73 deletions(-) delete mode 100644 src/main/java/lotto/ExceptionController.java create mode 100644 src/main/java/validator/ErrorMessage.java create mode 100644 src/main/java/validator/ExceptionController.java diff --git a/build.gradle b/build.gradle index 9d087b142e..a8e8d4440e 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,7 @@ repositories { dependencies { implementation 'com.github.woowacourse-projects:mission-utils:1.0.0' + implementation 'org.jetbrains:annotations:23.0.0' } java { diff --git a/src/main/java/lotto/ExceptionController.java b/src/main/java/lotto/ExceptionController.java deleted file mode 100644 index 75657a6c3b..0000000000 --- a/src/main/java/lotto/ExceptionController.java +++ /dev/null @@ -1,38 +0,0 @@ -package lotto; - -import static lotto.Message.*; -import java.util.List; - -public class ExceptionController { - - public static void noIntegerValueException(String Numbers){ - for(int i=0; i9){ - System.out.println(NOT_INTAGER_ERROR_MESSAGE); - throw new IllegalArgumentException(); - } - } - } - - public static void noValidAmountException(String amount){ - if(Integer.parseInt(amount)%1000 != 0){ - System.out.println(NOT_THOUSAND_ERROR_MESSAGE); - throw new IllegalArgumentException(); - } - } - - public static void noValidLottoNumberException(int number){ - if(number<1 || number>45){ - System.out.println(NOT_OUTRANGE_NUMBER_ERROR_MESSAGE); - throw new IllegalArgumentException(); - } - } - - public static void overlapNumberException(List winningNumberList, int correctInteger){ - if(winningNumberList.contains(correctInteger)){ - System.out.println(OVERLAP_NUMBER_ERROR_MESSAGE); - throw new IllegalArgumentException(); - } - } -} diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java index 75690b6044..8d0b3a97b7 100644 --- a/src/main/java/lotto/Lotto.java +++ b/src/main/java/lotto/Lotto.java @@ -1,5 +1,7 @@ package lotto; +import static validator.ExceptionController.*; + import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -8,13 +10,12 @@ public class Lotto { private final List numbers; public Lotto(List numbers) { - validate(numbers); this.numbers = numbers; - } - private void validate(List numbers) { - if (numbers.size() != 6) { - throw new IllegalArgumentException(); + try { + noValidDigitExecption(numbers); + }catch (IllegalArgumentException exception){ + System.out.println(exception.getMessage()); } } diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index f3894f0c1b..409334a3db 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -1,6 +1,7 @@ package lotto; import camp.nextstep.edu.missionutils.Console; +import static validator.ExceptionController.*; public class LottoGame { LottoList lottoList; @@ -11,8 +12,13 @@ public class LottoGame { System.out.println(Message.INPUT_PURCHASE_AMOUNT.getMessage()); String amount = Console.readLine(); - ExceptionController.noIntegerValueException(amount); - ExceptionController.noValidAmountException(amount); + try { + noIntegerValueException(amount); + noValidAmountException(amount); + } + catch (IllegalArgumentException exception){ + System.out.println(exception.getMessage()); + } coin = Integer.parseInt(amount)/1000; } diff --git a/src/main/java/lotto/Message.java b/src/main/java/lotto/Message.java index ebe7b1b882..82386698f2 100644 --- a/src/main/java/lotto/Message.java +++ b/src/main/java/lotto/Message.java @@ -3,14 +3,7 @@ public enum Message { INPUT_PURCHASE_AMOUNT("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), INPUT_BONUS_NUMBER("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), - INPUT_SIXDIGIT_NUMVER("6์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), - NOT_INTAGER_ERROR_MESSAGE("[ERROR] : ์ •์ˆ˜๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค."), - NOT_THOUSAND_ERROR_MESSAGE("[ERROR] : ์ฒœ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”."), - NOT_OUTRANGE_NUMBER_ERROR_MESSAGE("[ERROR] : ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜์˜€์Šต๋‹ˆ๋‹ค."), - OVERLAP_NUMBER_ERROR_MESSAGE("[ERROR] : ์ค‘๋ณต๋˜๋Š” ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค."); - - - + INPUT_WINNING_NUMBERS("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); private final String message; diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/lotto/WinningNumbers.java index 8e98ff2a07..a52b854816 100644 --- a/src/main/java/lotto/WinningNumbers.java +++ b/src/main/java/lotto/WinningNumbers.java @@ -1,6 +1,8 @@ package lotto; import camp.nextstep.edu.missionutils.Console; +import static validator.ExceptionController.*; + import static lotto.Message.*; import java.util.ArrayList; @@ -12,10 +14,9 @@ public class WinningNumbers { String winningNumbers; WinningNumbers(){ - System.out.println(INPUT_PURCHASE_AMOUNT); + System.out.println(INPUT_WINNING_NUMBERS.getMessage()); winningNumbers = Console.readLine(); setWinningNumberslist(); - validate(winningNumberslist); setBonusNumber(); } private void setWinningNumberslist(){ @@ -28,40 +29,35 @@ private void setWinningNumberslist(){ correctString = ""; continue; } - correctString += tmp; - ExceptionController.noIntegerValueException(correctString); - if(i == winningNumbers.length()-1){ - putCorrectNumber(correctString); - } } + + putCorrectNumber(correctString); } private void putCorrectNumber(String correctString){ int correctInteger = Integer.parseInt(correctString); - ExceptionController.noIntegerValueException(correctString); - ExceptionController.noValidLottoNumberException(correctInteger); - ExceptionController.overlapNumberException(winningNumberslist, correctInteger); + try { + noIntegerValueException(correctString); + noValidLottoNumberException(correctInteger); + overlapNumberException(winningNumberslist, correctInteger); + } + catch (IllegalArgumentException exception){ + System.out.println(exception.getMessage()); + } winningNumberslist.add(correctInteger); } - private void validate(List winningNumberslist) { - if (winningNumberslist.size() != 6) { - System.out.println(INPUT_SIXDIGIT_NUMVER); - throw new IllegalArgumentException(); - } - } - private void setBonusNumber(){ System.out.println(INPUT_BONUS_NUMBER.getMessage()); String bonusNumberstr = Console.readLine(); int bonusNumberint = Integer.parseInt(bonusNumberstr); - ExceptionController.noIntegerValueException(bonusNumberstr); - ExceptionController.noValidLottoNumberException(bonusNumberint); - ExceptionController.overlapNumberException(winningNumberslist, bonusNumberint); + noIntegerValueException(bonusNumberstr); + noValidLottoNumberException(bonusNumberint); + overlapNumberException(winningNumberslist, bonusNumberint); bonusNumber = bonusNumberint; } diff --git a/src/main/java/validator/ErrorMessage.java b/src/main/java/validator/ErrorMessage.java new file mode 100644 index 0000000000..dd787ecb6d --- /dev/null +++ b/src/main/java/validator/ErrorMessage.java @@ -0,0 +1,19 @@ +package validator; + +public enum ErrorMessage { + INPUT_SIXDIGIT_NUMBER("[ERROR] : 6์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), + NOT_INTAGER_ERROR_MESSAGE("[ERROR] : ์ •์ˆ˜๊ฐ’์ด ์•„๋‹™๋‹ˆ๋‹ค."), + NOT_THOUSAND_ERROR_MESSAGE("[ERROR] : ์ฒœ์› ๋‹จ์œ„๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”."), + NOT_OUTRANGE_NUMBER_ERROR_MESSAGE("[ERROR] : ๋กœ๋˜ ๋ฒˆํ˜ธ์˜ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜์˜€์Šต๋‹ˆ๋‹ค."), + OVERLAP_NUMBER_ERROR_MESSAGE("[ERROR] : ์ค‘๋ณต๋˜๋Š” ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค."); + + private final String errorMessage; + + ErrorMessage(String errorMessage){ + this.errorMessage = errorMessage; + } + + public String getMessage(){ + return errorMessage; + } +} diff --git a/src/main/java/validator/ExceptionController.java b/src/main/java/validator/ExceptionController.java new file mode 100644 index 0000000000..51d6c8883f --- /dev/null +++ b/src/main/java/validator/ExceptionController.java @@ -0,0 +1,41 @@ +package validator; + +import static validator.ErrorMessage.*; + +import java.util.List; + +public class ExceptionController { + + public static void noIntegerValueException(String numbers){ + for(char number : numbers.toCharArray()){ + int isIntger = number - '0'; + if(isIntger<0 || isIntger>9){ + throw new IllegalArgumentException(NOT_INTAGER_ERROR_MESSAGE.getMessage()); + } + } + } + + public static void noValidAmountException(String amount){ + if(Integer.parseInt(amount)%1000 != 0){ + throw new IllegalArgumentException(NOT_THOUSAND_ERROR_MESSAGE.getMessage()); + } + } + + public static void noValidLottoNumberException(int number){ + if(number<1 || number>45){ + throw new IllegalArgumentException(NOT_OUTRANGE_NUMBER_ERROR_MESSAGE.getMessage()); + } + } + + public static void overlapNumberException(List winningNumberList, int correctInteger){ + if(winningNumberList.contains(correctInteger)){ + throw new IllegalArgumentException(OVERLAP_NUMBER_ERROR_MESSAGE.getMessage()); + } + } + + public static void noValidDigitExecption(List numbers) { + if (numbers.size() != 6) { + throw new IllegalArgumentException(INPUT_SIXDIGIT_NUMBER.getMessage()); + } + } +} From df5c7c7398cb6ee6fa98e039f8e6c93faa467c3a Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 16:51:33 +0900 Subject: [PATCH 21/27] ref(calculator): add calculator pakage to split Calculator and Printer class --- src/main/java/calculator/Calculator.java | 43 +++++++++++++++ src/main/java/calculator/Printer.java | 22 ++++++++ src/main/java/lotto/Calculator.java | 67 ------------------------ src/main/java/lotto/LottoGame.java | 8 ++- src/main/java/lotto/LottoList.java | 2 +- src/main/java/lotto/WinningNumbers.java | 6 +-- 6 files changed, 75 insertions(+), 73 deletions(-) create mode 100644 src/main/java/calculator/Calculator.java create mode 100644 src/main/java/calculator/Printer.java delete mode 100644 src/main/java/lotto/Calculator.java diff --git a/src/main/java/calculator/Calculator.java b/src/main/java/calculator/Calculator.java new file mode 100644 index 0000000000..e60a425aec --- /dev/null +++ b/src/main/java/calculator/Calculator.java @@ -0,0 +1,43 @@ +package calculator; + +import lotto.LottoList; +import lotto.WinningNumbers; + +public class Calculator extends Printer{ + + private LottoList lottoList; + private WinningNumbers winningNumbers; + + public Calculator(LottoList lottoList, WinningNumbers winningNumbers){ + this.lottoList = lottoList; + this.winningNumbers = winningNumbers; + } + + public void totalCorrectCount(){ + for(int i=0; i winningNumberslist = new ArrayList<>(); - int bonusNumber; - String winningNumbers; + public List winningNumberslist = new ArrayList<>(); + public int bonusNumber; + public String winningNumbers; WinningNumbers(){ System.out.println(INPUT_WINNING_NUMBERS.getMessage()); From d6b8e7fa080d79db21545ba3bf3052a5d04828e1 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 17:32:34 +0900 Subject: [PATCH 22/27] ref(numberManager): add numberManager pakage to split class. --- src/main/java/calculator/Calculator.java | 4 ++-- src/main/java/calculator/Printer.java | 5 +++-- src/main/java/lotto/LottoGame.java | 12 ++++++++---- src/main/java/{lotto => numberManager}/Lotto.java | 2 +- .../java/{lotto => numberManager}/LottoList.java | 4 ++-- .../{lotto => numberManager}/WinningNumbers.java | 4 ++-- src/main/java/validator/ExceptionController.java | 11 ++++++----- 7 files changed, 24 insertions(+), 18 deletions(-) rename src/main/java/{lotto => numberManager}/Lotto.java (97%) rename src/main/java/{lotto => numberManager}/LottoList.java (90%) rename src/main/java/{lotto => numberManager}/WinningNumbers.java (97%) diff --git a/src/main/java/calculator/Calculator.java b/src/main/java/calculator/Calculator.java index e60a425aec..dbd060d1c3 100644 --- a/src/main/java/calculator/Calculator.java +++ b/src/main/java/calculator/Calculator.java @@ -1,7 +1,7 @@ package calculator; -import lotto.LottoList; -import lotto.WinningNumbers; +import numberManager.LottoList; +import numberManager.WinningNumbers; public class Calculator extends Printer{ diff --git a/src/main/java/calculator/Printer.java b/src/main/java/calculator/Printer.java index 44e864f387..91598ce177 100644 --- a/src/main/java/calculator/Printer.java +++ b/src/main/java/calculator/Printer.java @@ -4,7 +4,8 @@ public class Printer { static int first = 0, second = 0, third = 0, fourth = 0, fifth = 0; static int totalIncome = 0; - public static void printResult(){ + + public void printResult(){ System.out.println("๋‹น์ฒจ ํ†ต๊ณ„\n" + "---\n" + "3๊ฐœ ์ผ์น˜ (5,000์›) - " + fifth + "๊ฐœ\n" + @@ -14,7 +15,7 @@ public static void printResult(){ "6๊ฐœ ์ผ์น˜ (2,000,000,000์›) - " + first + "๊ฐœ"); } - public static void printIncomeRate(int coin){ + public void printIncomeRate(int coin){ double incomeRateTemp = ((double)totalIncome / (double)(coin * 1000))*100; double incomeRate = Math.round(incomeRateTemp*100)/100.0; System.out.println("์ด ์ˆ˜์ต๋ฅ ์€ " + incomeRate + "%์ž…๋‹ˆ๋‹ค."); diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index e06a7133e1..b646364972 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -1,8 +1,10 @@ package lotto; -import calculator.Calculator; -import calculator.Printer; +import calculator.*; import camp.nextstep.edu.missionutils.Console; +import numberManager.LottoList; +import numberManager.WinningNumbers; + import static validator.ExceptionController.*; public class LottoGame { @@ -20,6 +22,7 @@ public class LottoGame { } catch (IllegalArgumentException exception){ System.out.println(exception.getMessage()); + return; } coin = Integer.parseInt(amount)/1000; @@ -32,7 +35,8 @@ public void run(){ Calculator calculator = new Calculator(lottoList, winningNumbers); calculator.totalCorrectCount(); - Printer.printResult(); - Printer.printIncomeRate(coin); + Printer printer = new Printer(); + printer.printResult(); + printer.printIncomeRate(coin); } } diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/numberManager/Lotto.java similarity index 97% rename from src/main/java/lotto/Lotto.java rename to src/main/java/numberManager/Lotto.java index 8d0b3a97b7..424def189e 100644 --- a/src/main/java/lotto/Lotto.java +++ b/src/main/java/numberManager/Lotto.java @@ -1,4 +1,4 @@ -package lotto; +package numberManager; import static validator.ExceptionController.*; diff --git a/src/main/java/lotto/LottoList.java b/src/main/java/numberManager/LottoList.java similarity index 90% rename from src/main/java/lotto/LottoList.java rename to src/main/java/numberManager/LottoList.java index 84fc1f845e..307aaec901 100644 --- a/src/main/java/lotto/LottoList.java +++ b/src/main/java/numberManager/LottoList.java @@ -1,4 +1,4 @@ -package lotto; +package numberManager; import camp.nextstep.edu.missionutils.Randoms; @@ -7,7 +7,7 @@ public class LottoList { public Lotto[] lottos; - LottoList(int coin){ + public LottoList(int coin){ System.out.println(coin + "๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."); this.lottos = new Lotto[coin]; diff --git a/src/main/java/lotto/WinningNumbers.java b/src/main/java/numberManager/WinningNumbers.java similarity index 97% rename from src/main/java/lotto/WinningNumbers.java rename to src/main/java/numberManager/WinningNumbers.java index fa1913b811..0c7dd7cd3f 100644 --- a/src/main/java/lotto/WinningNumbers.java +++ b/src/main/java/numberManager/WinningNumbers.java @@ -1,4 +1,4 @@ -package lotto; +package numberManager; import camp.nextstep.edu.missionutils.Console; import static validator.ExceptionController.*; @@ -13,7 +13,7 @@ public class WinningNumbers { public int bonusNumber; public String winningNumbers; - WinningNumbers(){ + public WinningNumbers(){ System.out.println(INPUT_WINNING_NUMBERS.getMessage()); winningNumbers = Console.readLine(); setWinningNumberslist(); diff --git a/src/main/java/validator/ExceptionController.java b/src/main/java/validator/ExceptionController.java index 51d6c8883f..c996b56be6 100644 --- a/src/main/java/validator/ExceptionController.java +++ b/src/main/java/validator/ExceptionController.java @@ -2,11 +2,12 @@ import static validator.ErrorMessage.*; +import java.util.IllformedLocaleException; import java.util.List; public class ExceptionController { - public static void noIntegerValueException(String numbers){ + public static void noIntegerValueException(String numbers) throws IllegalArgumentException{ for(char number : numbers.toCharArray()){ int isIntger = number - '0'; if(isIntger<0 || isIntger>9){ @@ -15,25 +16,25 @@ public static void noIntegerValueException(String numbers){ } } - public static void noValidAmountException(String amount){ + public static void noValidAmountException(String amount) throws IllegalArgumentException{ if(Integer.parseInt(amount)%1000 != 0){ throw new IllegalArgumentException(NOT_THOUSAND_ERROR_MESSAGE.getMessage()); } } - public static void noValidLottoNumberException(int number){ + public static void noValidLottoNumberException(int number) throws IllegalArgumentException{ if(number<1 || number>45){ throw new IllegalArgumentException(NOT_OUTRANGE_NUMBER_ERROR_MESSAGE.getMessage()); } } - public static void overlapNumberException(List winningNumberList, int correctInteger){ + public static void overlapNumberException(List winningNumberList, int correctInteger) throws IllegalArgumentException { if(winningNumberList.contains(correctInteger)){ throw new IllegalArgumentException(OVERLAP_NUMBER_ERROR_MESSAGE.getMessage()); } } - public static void noValidDigitExecption(List numbers) { + public static void noValidDigitExecption(List numbers) throws IllegalArgumentException{ if (numbers.size() != 6) { throw new IllegalArgumentException(INPUT_SIXDIGIT_NUMBER.getMessage()); } From 6e68eb69ae4c73a7538e025199fd5f1cafcb2294 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 17:48:00 +0900 Subject: [PATCH 23/27] ref(Lotto): move to lotto pakage and handle exception. --- src/main/java/{numberManager => lotto}/Lotto.java | 2 +- src/main/java/lotto/Message.java | 3 ++- src/main/java/numberManager/LottoList.java | 4 +++- src/main/java/numberManager/WinningNumbers.java | 13 ++++++++++--- src/main/java/validator/ExceptionController.java | 1 - 5 files changed, 16 insertions(+), 7 deletions(-) rename src/main/java/{numberManager => lotto}/Lotto.java (97%) diff --git a/src/main/java/numberManager/Lotto.java b/src/main/java/lotto/Lotto.java similarity index 97% rename from src/main/java/numberManager/Lotto.java rename to src/main/java/lotto/Lotto.java index 424def189e..8d0b3a97b7 100644 --- a/src/main/java/numberManager/Lotto.java +++ b/src/main/java/lotto/Lotto.java @@ -1,4 +1,4 @@ -package numberManager; +package lotto; import static validator.ExceptionController.*; diff --git a/src/main/java/lotto/Message.java b/src/main/java/lotto/Message.java index 82386698f2..603e84757d 100644 --- a/src/main/java/lotto/Message.java +++ b/src/main/java/lotto/Message.java @@ -3,7 +3,8 @@ public enum Message { INPUT_PURCHASE_AMOUNT("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), INPUT_BONUS_NUMBER("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), - INPUT_WINNING_NUMBERS("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."); + INPUT_WINNING_NUMBERS("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), + PURCHASE_MESSAGE("๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."); private final String message; diff --git a/src/main/java/numberManager/LottoList.java b/src/main/java/numberManager/LottoList.java index 307aaec901..463c9deeb8 100644 --- a/src/main/java/numberManager/LottoList.java +++ b/src/main/java/numberManager/LottoList.java @@ -1,6 +1,8 @@ package numberManager; import camp.nextstep.edu.missionutils.Randoms; +import lotto.Lotto; +import lotto.Message; import java.util.List; @@ -8,7 +10,7 @@ public class LottoList { public Lotto[] lottos; public LottoList(int coin){ - System.out.println(coin + "๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."); + System.out.println(coin + Message.PURCHASE_MESSAGE.getMessage()); this.lottos = new Lotto[coin]; setLottoList(coin); diff --git a/src/main/java/numberManager/WinningNumbers.java b/src/main/java/numberManager/WinningNumbers.java index 0c7dd7cd3f..a9bf4dd980 100644 --- a/src/main/java/numberManager/WinningNumbers.java +++ b/src/main/java/numberManager/WinningNumbers.java @@ -45,6 +45,7 @@ private void putCorrectNumber(String correctString){ } catch (IllegalArgumentException exception){ System.out.println(exception.getMessage()); + return; } winningNumberslist.add(correctInteger); @@ -55,9 +56,15 @@ private void setBonusNumber(){ String bonusNumberstr = Console.readLine(); int bonusNumberint = Integer.parseInt(bonusNumberstr); - noIntegerValueException(bonusNumberstr); - noValidLottoNumberException(bonusNumberint); - overlapNumberException(winningNumberslist, bonusNumberint); + try { + noIntegerValueException(bonusNumberstr); + noValidLottoNumberException(bonusNumberint); + overlapNumberException(winningNumberslist, bonusNumberint); + } + catch (IllegalArgumentException exception){ + System.out.println(exception.getMessage()); + return; + } bonusNumber = bonusNumberint; } diff --git a/src/main/java/validator/ExceptionController.java b/src/main/java/validator/ExceptionController.java index c996b56be6..d336685cd6 100644 --- a/src/main/java/validator/ExceptionController.java +++ b/src/main/java/validator/ExceptionController.java @@ -2,7 +2,6 @@ import static validator.ErrorMessage.*; -import java.util.IllformedLocaleException; import java.util.List; public class ExceptionController { From d44a083a684d0d3d3cc4d003054f677836825ae8 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 17:52:03 +0900 Subject: [PATCH 24/27] styl(LottoGame): refactored printResult(), printIncom() in run(). --- src/main/java/lotto/LottoGame.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index b646364972..47644d9977 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -34,9 +34,7 @@ public void run(){ Calculator calculator = new Calculator(lottoList, winningNumbers); calculator.totalCorrectCount(); - - Printer printer = new Printer(); - printer.printResult(); - printer.printIncomeRate(coin); + calculator.printResult(); + calculator.printIncomeRate(coin); } } From 8872a111a3956e52f1bbc0edc7c18e2b71d03381 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 18:57:25 +0900 Subject: [PATCH 25/27] styl(.): fix access modifier. --- src/main/java/calculator/Printer.java | 4 ++-- src/main/java/lotto/LottoGame.java | 13 +++++++++---- src/main/java/numberManager/WinningNumbers.java | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/calculator/Printer.java b/src/main/java/calculator/Printer.java index 91598ce177..e1abd19b89 100644 --- a/src/main/java/calculator/Printer.java +++ b/src/main/java/calculator/Printer.java @@ -2,8 +2,8 @@ public class Printer { - static int first = 0, second = 0, third = 0, fourth = 0, fifth = 0; - static int totalIncome = 0; + int first = 0, second = 0, third = 0, fourth = 0, fifth = 0; + int totalIncome = 0; public void printResult(){ System.out.println("๋‹น์ฒจ ํ†ต๊ณ„\n" + diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index 47644d9977..05f531f932 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -8,13 +8,12 @@ import static validator.ExceptionController.*; public class LottoGame { - LottoList lottoList; - WinningNumbers winningNumbers; + private LottoList lottoList; + private WinningNumbers winningNumbers; int coin; LottoGame(){ - System.out.println(Message.INPUT_PURCHASE_AMOUNT.getMessage()); - String amount = Console.readLine(); + String amount = inputAmount(); try { noIntegerValueException(amount); @@ -28,6 +27,12 @@ public class LottoGame { coin = Integer.parseInt(amount)/1000; } + private String inputAmount(){ + System.out.println(Message.INPUT_PURCHASE_AMOUNT.getMessage()); + String amount = Console.readLine(); + return amount; + } + public void run(){ lottoList = new LottoList(coin); winningNumbers = new WinningNumbers(); diff --git a/src/main/java/numberManager/WinningNumbers.java b/src/main/java/numberManager/WinningNumbers.java index a9bf4dd980..14797460ae 100644 --- a/src/main/java/numberManager/WinningNumbers.java +++ b/src/main/java/numberManager/WinningNumbers.java @@ -11,7 +11,7 @@ public class WinningNumbers { public List winningNumberslist = new ArrayList<>(); public int bonusNumber; - public String winningNumbers; + private String winningNumbers; public WinningNumbers(){ System.out.println(INPUT_WINNING_NUMBERS.getMessage()); From 4121a02e1279a7c57f0722583a40a39a9cc47826 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 19:33:40 +0900 Subject: [PATCH 26/27] styl(LottoMessage): rename Message Enum class to LottoMessage. --- src/main/java/lotto/LottoGame.java | 2 +- src/main/java/lotto/{Message.java => LottoMessage.java} | 4 ++-- src/main/java/numberManager/LottoList.java | 4 ++-- src/main/java/numberManager/WinningNumbers.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) rename src/main/java/lotto/{Message.java => LottoMessage.java} (87%) diff --git a/src/main/java/lotto/LottoGame.java b/src/main/java/lotto/LottoGame.java index 05f531f932..9deb2be538 100644 --- a/src/main/java/lotto/LottoGame.java +++ b/src/main/java/lotto/LottoGame.java @@ -28,7 +28,7 @@ public class LottoGame { } private String inputAmount(){ - System.out.println(Message.INPUT_PURCHASE_AMOUNT.getMessage()); + System.out.println(LottoMessage.INPUT_PURCHASE_AMOUNT.getMessage()); String amount = Console.readLine(); return amount; } diff --git a/src/main/java/lotto/Message.java b/src/main/java/lotto/LottoMessage.java similarity index 87% rename from src/main/java/lotto/Message.java rename to src/main/java/lotto/LottoMessage.java index 603e84757d..9d901aeef7 100644 --- a/src/main/java/lotto/Message.java +++ b/src/main/java/lotto/LottoMessage.java @@ -1,6 +1,6 @@ package lotto; -public enum Message { +public enum LottoMessage { INPUT_PURCHASE_AMOUNT("๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), INPUT_BONUS_NUMBER("๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), INPUT_WINNING_NUMBERS("๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."), @@ -8,7 +8,7 @@ public enum Message { private final String message; - Message(String message){ + LottoMessage(String message){ this.message = message; } diff --git a/src/main/java/numberManager/LottoList.java b/src/main/java/numberManager/LottoList.java index 463c9deeb8..79334e079d 100644 --- a/src/main/java/numberManager/LottoList.java +++ b/src/main/java/numberManager/LottoList.java @@ -2,7 +2,7 @@ import camp.nextstep.edu.missionutils.Randoms; import lotto.Lotto; -import lotto.Message; +import lotto.LottoMessage; import java.util.List; @@ -10,7 +10,7 @@ public class LottoList { public Lotto[] lottos; public LottoList(int coin){ - System.out.println(coin + Message.PURCHASE_MESSAGE.getMessage()); + System.out.println(coin + LottoMessage.PURCHASE_MESSAGE.getMessage()); this.lottos = new Lotto[coin]; setLottoList(coin); diff --git a/src/main/java/numberManager/WinningNumbers.java b/src/main/java/numberManager/WinningNumbers.java index 14797460ae..f219235fd0 100644 --- a/src/main/java/numberManager/WinningNumbers.java +++ b/src/main/java/numberManager/WinningNumbers.java @@ -3,7 +3,7 @@ import camp.nextstep.edu.missionutils.Console; import static validator.ExceptionController.*; -import static lotto.Message.*; +import static lotto.LottoMessage.*; import java.util.ArrayList; import java.util.List; From 7c8f400faf4d90976aaa336fbaad1e4529c99982 Mon Sep 17 00:00:00 2001 From: sheepysnoopy Date: Thu, 13 Jul 2023 19:47:52 +0900 Subject: [PATCH 27/27] feat(WinningNumbers): add validate(). --- .../java/numberManager/WinningNumbers.java | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/java/numberManager/WinningNumbers.java b/src/main/java/numberManager/WinningNumbers.java index f219235fd0..d115e1ccf4 100644 --- a/src/main/java/numberManager/WinningNumbers.java +++ b/src/main/java/numberManager/WinningNumbers.java @@ -38,15 +38,7 @@ private void setWinningNumberslist(){ private void putCorrectNumber(String correctString){ int correctInteger = Integer.parseInt(correctString); - try { - noIntegerValueException(correctString); - noValidLottoNumberException(correctInteger); - overlapNumberException(winningNumberslist, correctInteger); - } - catch (IllegalArgumentException exception){ - System.out.println(exception.getMessage()); - return; - } + if(validate(correctString, correctInteger)) return; winningNumberslist.add(correctInteger); } @@ -56,16 +48,21 @@ private void setBonusNumber(){ String bonusNumberstr = Console.readLine(); int bonusNumberint = Integer.parseInt(bonusNumberstr); + if(validate(bonusNumberstr, bonusNumberint)) return; + + bonusNumber = bonusNumberint; + } + + private boolean validate(String numStr, int numInt){ try { - noIntegerValueException(bonusNumberstr); - noValidLottoNumberException(bonusNumberint); - overlapNumberException(winningNumberslist, bonusNumberint); + noIntegerValueException(numStr); + noValidLottoNumberException(numInt); + overlapNumberException(winningNumberslist, numInt); } catch (IllegalArgumentException exception){ System.out.println(exception.getMessage()); - return; + return true; } - - bonusNumber = bonusNumberint; + return false; } }