From 7b5e91986c3af91f36365a0185a7452d56d4e9a4 Mon Sep 17 00:00:00 2001 From: Choihohee Date: Tue, 21 Nov 2023 16:49:11 +0900 Subject: [PATCH 01/12] =?UTF-8?q?docs:=20Racing=20Car=20Game=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20=EA=B8=B0=EB=8A=A5=20=EB=AA=A9=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/README.md b/docs/README.md index e69de29bb2d..d0b0b0d24d6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -0,0 +1,19 @@ +# ๐Ÿš—Racing Car Game ๊ตฌํ˜„ ๊ธฐ๋Šฅ ๋ชฉ๋ก # + +### ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ ### +- ","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅํ•œ๋‹ค
+### ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ ### + +### ์ „์ง„ ํ• ์ง€ ๋ฉˆ์ถค ํ• ์ง€ ๊ตฌํ˜„ ### +- 0-9์˜ ๋ฌด์ž‘์œ„ ๊ฐ’์„ ๊ตฌํ•œ๋‹ค.
+- ๊ทธ ๊ฐ’์ด 4์ด์ƒ์ด๋ผ๋ฉด ์ „์ง„
+- ์•„๋‹ˆ๋ผ๋ฉด ๋ฉˆ์ถคํ•œ๋‹ค.
+### 1ํšŒ ๋๋‚  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์คŒ(์ฐจ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜) ### +- ๊ฐ ์ž๋™์ฐจ ๋งˆ๋‹ค "-" ๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•จ
+### ์šฐ์Šน์ž(๊ณต๋™๊ฐ€๋Šฅ)์„ ์ถœ๋ ฅํ•จ ### +- ๊ณต๋™ ์šฐ์Šน์ผ ๊ฒฝ์šฐ "," ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•ด์ค€๋‹ค
+- ๋ˆ„๊ฐ€ ๊ฐ€์žฅ๋งŽ์€ ์ „์ง„์„ ํ–ˆ๋Š”์ง€ ํ™•์ธ
+ + + + From 4cb91079b201c23819b4bd5b4531a9b2789de79c Mon Sep 17 00:00:00 2001 From: Choihohee Date: Wed, 22 Nov 2023 00:47:04 +0900 Subject: [PATCH 02/12] =?UTF-8?q?add:=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=EA=B0=80=20=EA=B2=BD=EC=A3=BC=ED=95=A0=20=EC=9E=90=EB=8F=99?= =?UTF-8?q?=EC=B0=A8=20=EC=9D=B4=EB=A6=84=20=EC=9E=85=EB=A0=A5=20&=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=EA=B0=80=20=EC=8B=9C=EB=8F=84?= =?UTF-8?q?=ED=95=A0=20=ED=9A=9F=EC=88=98=EB=A5=BC=20=EC=9E=85=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 3 ++- src/main/java/racingcar/Application.java | 4 +++ .../Controller/RacingCarController.java | 19 +++++++++++++ src/main/java/racingcar/Model/Car.java | 19 +++++++++++++ src/main/java/racingcar/Service/Result.java | 4 +++ .../java/racingcar/Service/UserInput.java | 27 +++++++++++++++++++ src/main/java/racingcar/View/InputView.java | 11 ++++++++ src/main/java/racingcar/View/OutputView.java | 4 +++ .../java/racingcar/Service/userInputTest.java | 16 +++++++++++ 9 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 src/main/java/racingcar/Controller/RacingCarController.java create mode 100644 src/main/java/racingcar/Model/Car.java create mode 100644 src/main/java/racingcar/Service/Result.java create mode 100644 src/main/java/racingcar/Service/UserInput.java create mode 100644 src/main/java/racingcar/View/InputView.java create mode 100644 src/main/java/racingcar/View/OutputView.java create mode 100644 src/test/java/racingcar/Service/userInputTest.java diff --git a/docs/README.md b/docs/README.md index d0b0b0d24d6..a0e738a4bf8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,8 @@ # ๐Ÿš—Racing Car Game ๊ตฌํ˜„ ๊ธฐ๋Šฅ ๋ชฉ๋ก # ### ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ ### -- ","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅํ•œ๋‹ค
+- ์ž๋™์ฐจ ์ด๋ฆ„์„ ","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅํ•œ๋‹ค
+- ๊ธ€์ž ์ˆ˜๊ฐ€ 5์ž ์ดํ•˜์—ฌ์•ผํ•œ๋‹ค. ์•„๋‹ ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
### ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ ### ### ์ „์ง„ ํ• ์ง€ ๋ฉˆ์ถค ํ• ์ง€ ๊ตฌํ˜„ ### diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e7242..0502bc8c606 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,11 @@ package racingcar; +import racingcar.Controller.RacingCarController; + public class Application { public static void main(String[] args) { // TODO: ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„ + RacingCarController racingCarController = new RacingCarController(); + racingCarController.run(); } } diff --git a/src/main/java/racingcar/Controller/RacingCarController.java b/src/main/java/racingcar/Controller/RacingCarController.java new file mode 100644 index 00000000000..c9685dab546 --- /dev/null +++ b/src/main/java/racingcar/Controller/RacingCarController.java @@ -0,0 +1,19 @@ +package racingcar.Controller; + +import racingcar.Service.UserInput; +import racingcar.View.InputView; + +public class RacingCarController { + InputView inputView; + UserInput userInput = new UserInput(); + + public void run() { + inputView.printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" + startCar(); + } + + private void startCar() throws IllegalAccessException { + userInput.userInputCarName(); + userInput.tryNumber(); + } +} diff --git a/src/main/java/racingcar/Model/Car.java b/src/main/java/racingcar/Model/Car.java new file mode 100644 index 00000000000..5f177389fb3 --- /dev/null +++ b/src/main/java/racingcar/Model/Car.java @@ -0,0 +1,19 @@ +package racingcar.Model; + +import static camp.nextstep.edu.missionutils.Console.readLine; + +public class Car { + public int tryNumber; + + public String getCarName() { + return carName; + } + + public void setCarName(String carName) { + this.carName = carName; + } + + public String carName; //carSize ํฌ๊ธฐ์˜ ๋ฌธ์ž์—ด์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด ์„ ์–ธ ๋ฐ ์ƒ์„ฑ + + +} diff --git a/src/main/java/racingcar/Service/Result.java b/src/main/java/racingcar/Service/Result.java new file mode 100644 index 00000000000..074058305e0 --- /dev/null +++ b/src/main/java/racingcar/Service/Result.java @@ -0,0 +1,4 @@ +package racingcar.Service; + +public class Result { +} diff --git a/src/main/java/racingcar/Service/UserInput.java b/src/main/java/racingcar/Service/UserInput.java new file mode 100644 index 00000000000..f57239bd8e4 --- /dev/null +++ b/src/main/java/racingcar/Service/UserInput.java @@ -0,0 +1,27 @@ +package racingcar.Service; + +import racingcar.Model.Car; + +import static camp.nextstep.edu.missionutils.Console.readLine; + +public class UserInput { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ & ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + + Car car = new Car(); + + public void userInputCarName () throws IllegalAccessException{ //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ + car.carName = readLine(); + String[] carList = car.carName.split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ + for (int i = 0; i < carList.length; i++) { + System.out.println(carList[i]); //์ฐจ๋ก€๋Œ€๋กœ ์ž๋™์ฐจ ์ด๋ฆ„ ์ถœ๋ ฅ + if (car.carName.length() > 5) { + throw new IllegalArgumentException("์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); + } + } + + } + + public int tryNumber(int tryNumber) { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + car.tryNumber = Integer.parseInt(readLine()); + return car.tryNumber; + } +} diff --git a/src/main/java/racingcar/View/InputView.java b/src/main/java/racingcar/View/InputView.java new file mode 100644 index 00000000000..28316641977 --- /dev/null +++ b/src/main/java/racingcar/View/InputView.java @@ -0,0 +1,11 @@ +package racingcar.View; + +public class InputView { + public void printInputCarName(){ + System.out.println("๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„"); + } + + public void printTryNumber(){ + System.out.println("์‹œ๋„ํ•  ํšŒ์ˆ˜๋Š” ๋ช‡ํšŒ์ธ๊ฐ€์š”?"); + } +} diff --git a/src/main/java/racingcar/View/OutputView.java b/src/main/java/racingcar/View/OutputView.java new file mode 100644 index 00000000000..1a4ec9e5277 --- /dev/null +++ b/src/main/java/racingcar/View/OutputView.java @@ -0,0 +1,4 @@ +package racingcar.View; + +public class OutputView { +} diff --git a/src/test/java/racingcar/Service/userInputTest.java b/src/test/java/racingcar/Service/userInputTest.java new file mode 100644 index 00000000000..e4d147cfbb1 --- /dev/null +++ b/src/test/java/racingcar/Service/userInputTest.java @@ -0,0 +1,16 @@ +package racingcar.Service; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class userInputTest { + UserInput userInput = new UserInput(); + + @DisplayName("์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ") + @Test + public void userInputCarName() { + String input + + } + +} From 99b16abe3b55849c9e09a804f5a6f589b9b917df Mon Sep 17 00:00:00 2001 From: Choihohee Date: Wed, 22 Nov 2023 23:35:00 +0900 Subject: [PATCH 03/12] =?UTF-8?q?faet:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 1 - .../racingcar/Controller/RacingCarController.java | 11 ++++++++--- src/main/java/racingcar/Service/UserInput.java | 6 +++--- src/main/java/racingcar/View/OutputView.java | 2 ++ src/main/java/racingcar/View/PrintScoreMessage.java | 7 +++++++ 5 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 src/main/java/racingcar/View/PrintScoreMessage.java diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 0502bc8c606..2128e813cab 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -4,7 +4,6 @@ public class Application { public static void main(String[] args) { - // TODO: ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„ RacingCarController racingCarController = new RacingCarController(); racingCarController.run(); } diff --git a/src/main/java/racingcar/Controller/RacingCarController.java b/src/main/java/racingcar/Controller/RacingCarController.java index c9685dab546..44804458e08 100644 --- a/src/main/java/racingcar/Controller/RacingCarController.java +++ b/src/main/java/racingcar/Controller/RacingCarController.java @@ -7,13 +7,18 @@ public class RacingCarController { InputView inputView; UserInput userInput = new UserInput(); - public void run() { + public void run() throws IllegalAccessException { inputView.printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" - startCar(); + startCar(); //์ž…๋ ฅ + AdvanceOrStop(); } + private void startCar() throws IllegalAccessException { userInput.userInputCarName(); - userInput.tryNumber(); + } + + private void AdvanceOrStop() { + } } diff --git a/src/main/java/racingcar/Service/UserInput.java b/src/main/java/racingcar/Service/UserInput.java index f57239bd8e4..a3d207033e0 100644 --- a/src/main/java/racingcar/Service/UserInput.java +++ b/src/main/java/racingcar/Service/UserInput.java @@ -11,17 +11,17 @@ public class UserInput { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ & public void userInputCarName () throws IllegalAccessException{ //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ car.carName = readLine(); String[] carList = car.carName.split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ + for (int i = 0; i < carList.length; i++) { System.out.println(carList[i]); //์ฐจ๋ก€๋Œ€๋กœ ์ž๋™์ฐจ ์ด๋ฆ„ ์ถœ๋ ฅ if (car.carName.length() > 5) { throw new IllegalArgumentException("์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); } } - } - public int tryNumber(int tryNumber) { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + public void tryNumber(int tryNumber) { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ car.tryNumber = Integer.parseInt(readLine()); - return car.tryNumber; } + } diff --git a/src/main/java/racingcar/View/OutputView.java b/src/main/java/racingcar/View/OutputView.java index 1a4ec9e5277..38ce4af5c36 100644 --- a/src/main/java/racingcar/View/OutputView.java +++ b/src/main/java/racingcar/View/OutputView.java @@ -1,4 +1,6 @@ package racingcar.View; public class OutputView { + + //๊ฒฐ๊ณผ ๋‚˜์™€์•ผํ•จ ์—ฌ๊ธฐ์„œ } diff --git a/src/main/java/racingcar/View/PrintScoreMessage.java b/src/main/java/racingcar/View/PrintScoreMessage.java new file mode 100644 index 00000000000..c52e3dc3f4b --- /dev/null +++ b/src/main/java/racingcar/View/PrintScoreMessage.java @@ -0,0 +1,7 @@ +package racingcar.View; + +public class PrintScoreMessage { + public void PrintMessage(){ + + } +} From 2322634d8e3bbede80e6fa919205019fe76fdf7e Mon Sep 17 00:00:00 2001 From: Choihohee Date: Thu, 23 Nov 2023 23:14:57 +0900 Subject: [PATCH 04/12] =?UTF-8?q?feat:=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=EA=B0=80=20=EC=8B=9C=EB=8F=84=ED=95=A0=20=ED=9A=9F=EC=88=98?= =?UTF-8?q?=EB=A5=BC=20=EC=9E=85=EB=A0=A5=EB=B0=9B=EC=95=84=20=EC=A0=84?= =?UTF-8?q?=EC=A7=84=EB=98=90=EB=8A=94=20=EB=A9=88=EC=B6=A4=20=EC=97=AC?= =?UTF-8?q?=EB=B6=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Service/RandomAdvanceOrstop.java | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/main/java/racingcar/Service/RandomAdvanceOrstop.java diff --git a/src/main/java/racingcar/Service/RandomAdvanceOrstop.java b/src/main/java/racingcar/Service/RandomAdvanceOrstop.java new file mode 100644 index 00000000000..641e1281535 --- /dev/null +++ b/src/main/java/racingcar/Service/RandomAdvanceOrstop.java @@ -0,0 +1,2 @@ +package racingcar.Service;public class RandomAdvanceOrstop { +} From 8d58ea8151e454b6c6cddefba3c09de441e54cb1 Mon Sep 17 00:00:00 2001 From: Choihohee Date: Sat, 25 Nov 2023 14:26:22 +0900 Subject: [PATCH 05/12] =?UTF-8?q?refactor:=20class=20=EB=93=A4=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81=20=EC=A7=84=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 2 +- .../Controller/RacingCarController.java | 19 ++++++--- src/main/java/racingcar/Model/Car.java | 26 +++++++++---- .../Service/RandomAdvanceOrstop.java | 39 ++++++++++++++++++- .../java/racingcar/Service/UserInput.java | 22 ++++++++--- src/main/java/racingcar/View/InputView.java | 8 +++- .../racingcar/View/PrintScoreMessage.java | 2 +- src/test/java/racingcar/ApplicationTest.java | 6 ++- .../java/racingcar/Service/userInputTest.java | 2 +- 9 files changed, 99 insertions(+), 27 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 2128e813cab..53f77d56e09 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -3,7 +3,7 @@ import racingcar.Controller.RacingCarController; public class Application { - public static void main(String[] args) { + public static void main(String[] args) throws IllegalAccessException { RacingCarController racingCarController = new RacingCarController(); racingCarController.run(); } diff --git a/src/main/java/racingcar/Controller/RacingCarController.java b/src/main/java/racingcar/Controller/RacingCarController.java index 44804458e08..24489ec3a9a 100644 --- a/src/main/java/racingcar/Controller/RacingCarController.java +++ b/src/main/java/racingcar/Controller/RacingCarController.java @@ -1,24 +1,31 @@ package racingcar.Controller; +import racingcar.Service.RandomAdvanceOrstop; import racingcar.Service.UserInput; import racingcar.View.InputView; public class RacingCarController { InputView inputView; UserInput userInput = new UserInput(); + RandomAdvanceOrstop randomAdvanceOrstop = new RandomAdvanceOrstop(); public void run() throws IllegalAccessException { - inputView.printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" startCar(); //์ž…๋ ฅ - AdvanceOrStop(); + executionResult(); //๊ฒฐ๊ณผ + winnerResult(); //์ตœ์ข… ์šฐ์Šน์ž ๊ฒฐ๊ณผ } - - private void startCar() throws IllegalAccessException { + private void startCar() throws IllegalAccessException { //๊ธ€์ž์ˆ˜ 5์ดํ•˜ ์กฐ๊ฑด ์•„๋‹ ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ + inputView.printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" userInput.userInputCarName(); + inputView.printTryNumber(); //"์‹œ๋„ํ•  ํšŸ์ˆ˜๋Š” ๋ช‡ ํšŒ์ธ๊ฐ€์š”?" + userInput.tryNumber(Integer); + } + private void executionResult() { //์‹คํ–‰๊ฒฐ๊ณผ + randomAdvanceOrstop.judgeAdvanceOrStop(); } - private void AdvanceOrStop() { - + private void winnerResult() { } + } diff --git a/src/main/java/racingcar/Model/Car.java b/src/main/java/racingcar/Model/Car.java index 5f177389fb3..187bb8b8efc 100644 --- a/src/main/java/racingcar/Model/Car.java +++ b/src/main/java/racingcar/Model/Car.java @@ -5,15 +5,27 @@ public class Car { public int tryNumber; - public String getCarName() { - return carName; - } - - public void setCarName(String carName) { - this.carName = carName; - } +// public String getCarName() { +// return carName; +// } +// +// public void setCarName(String carName) { +// this.carName = carName; +// } public String carName; //carSize ํฌ๊ธฐ์˜ ๋ฌธ์ž์—ด์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด ์„ ์–ธ ๋ฐ ์ƒ์„ฑ + +// public String[] getCarList() { +// return carList; +// } +// +// public void setCarList(String[] carList) { +// this.carList = carList; +// } + + public String[] carList; //์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฐจ ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ + + } diff --git a/src/main/java/racingcar/Service/RandomAdvanceOrstop.java b/src/main/java/racingcar/Service/RandomAdvanceOrstop.java index 641e1281535..81e46580da7 100644 --- a/src/main/java/racingcar/Service/RandomAdvanceOrstop.java +++ b/src/main/java/racingcar/Service/RandomAdvanceOrstop.java @@ -1,2 +1,37 @@ -package racingcar.Service;public class RandomAdvanceOrstop { -} +package racingcar.Service; +import camp.nextstep.edu.missionutils.Randoms; +import racingcar.Model.Car; + +public class RandomAdvanceOrstop { + + private final static int MIN_RANDOM_NUMBER = 0; + private final static int MAX_RANDOM_NUMBER = 9; + private final static int ADVANCE_NUMBER = 4; + public String advanceString = new String("-"); + + UserInput userInput = new UserInput(); + + Car car; + + public void judgeAdvanceOrStop() { + //๋ช‡๋ฒˆ ํ• ์ง€ ์ž…๋ ฅ ํ–ˆ์Œ car.tryNumber ๊ฐ€์ ธ์™€์„œ for๋ฌธ car.tryNumber.length ๋งŒํผ ๋Œ๋ ค์ฃผ๊ธฐ + for (int i = 0; i < car.tryNumber; i++) { + advanceOrStop(); + } + } + + private void advanceOrStop() { //์ „์ง„ํ•˜๋Š” ๋ฉ”์†Œ๋“œ, ์ถœ๋ ฅ + + for (int j = 0; j < (car.carList).length; j++) { + int judgeNumber = Randoms.pickNumberInRange(MIN_RANDOM_NUMBER, MAX_RANDOM_NUMBER); + + if (judgeNumber >= ADVANCE_NUMBER){ //4์ด์ƒ์ด๋ผ๋ฉด ์ „์ง„ + car.carList[j] = car.carList[j].concat(advanceString); + System.out.println(car.carList[j]); //์ „์ง„์ธ ์ฐจ๋Š” + "-"๋˜์„œ ์ถœ๋ ฅ + } + else{ + System.out.println(car.carList[j]);//๋ฉˆ์ถค์ธ ์ฐจ๋Š” ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ + } + } + } +} \ No newline at end of file diff --git a/src/main/java/racingcar/Service/UserInput.java b/src/main/java/racingcar/Service/UserInput.java index a3d207033e0..474cd6db860 100644 --- a/src/main/java/racingcar/Service/UserInput.java +++ b/src/main/java/racingcar/Service/UserInput.java @@ -10,18 +10,28 @@ public class UserInput { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ & public void userInputCarName () throws IllegalAccessException{ //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ car.carName = readLine(); - String[] carList = car.carName.split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ + car.carList = car.carName.split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ - for (int i = 0; i < carList.length; i++) { - System.out.println(carList[i]); //์ฐจ๋ก€๋Œ€๋กœ ์ž๋™์ฐจ ์ด๋ฆ„ ์ถœ๋ ฅ - if (car.carName.length() > 5) { - throw new IllegalArgumentException("์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); + judgeCarNameLength(); + + System.out.println(car.carName); + } + + public void judgeCarNameLength() throws IllegalAccessException{ + for (int i = 0; i < (car.carList).length; i++) { + if ((car.carList[i]).length() > 5) { + throw new IllegalArgumentException("[Error] ์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); } } } - public void tryNumber(int tryNumber) { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + public void tryNumber() throws IllegalAccessException { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ car.tryNumber = Integer.parseInt(readLine()); + if (car.tryNumber != ){ + throw new IllegalArgumentException("[Error] ์ •์ˆ˜๋งŒ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); + } } + + } diff --git a/src/main/java/racingcar/View/InputView.java b/src/main/java/racingcar/View/InputView.java index 28316641977..5a514c24287 100644 --- a/src/main/java/racingcar/View/InputView.java +++ b/src/main/java/racingcar/View/InputView.java @@ -1,11 +1,15 @@ package racingcar.View; +import racingcar.Controller.RacingCarController; + public class InputView { - public void printInputCarName(){ + RacingCarController racingCarController;gi + + public static void printInputCarName(){ System.out.println("๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„"); } - public void printTryNumber(){ + public static void printTryNumber(){ System.out.println("์‹œ๋„ํ•  ํšŒ์ˆ˜๋Š” ๋ช‡ํšŒ์ธ๊ฐ€์š”?"); } } diff --git a/src/main/java/racingcar/View/PrintScoreMessage.java b/src/main/java/racingcar/View/PrintScoreMessage.java index c52e3dc3f4b..f5c8bc66da2 100644 --- a/src/main/java/racingcar/View/PrintScoreMessage.java +++ b/src/main/java/racingcar/View/PrintScoreMessage.java @@ -1,7 +1,7 @@ package racingcar.View; public class PrintScoreMessage { - public void PrintMessage(){ + public static void PrintMessage(){ } } diff --git a/src/test/java/racingcar/ApplicationTest.java b/src/test/java/racingcar/ApplicationTest.java index 764ba4c627e..3769684b378 100644 --- a/src/test/java/racingcar/ApplicationTest.java +++ b/src/test/java/racingcar/ApplicationTest.java @@ -33,6 +33,10 @@ class ApplicationTest extends NsTest { @Override public void runMain() { - Application.main(new String[]{}); + try { + Application.main(new String[]{}); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } } } diff --git a/src/test/java/racingcar/Service/userInputTest.java b/src/test/java/racingcar/Service/userInputTest.java index e4d147cfbb1..4e2b45f66f4 100644 --- a/src/test/java/racingcar/Service/userInputTest.java +++ b/src/test/java/racingcar/Service/userInputTest.java @@ -9,7 +9,7 @@ public class userInputTest { @DisplayName("์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ") @Test public void userInputCarName() { - String input + String input; } From 5218cc9f8742fcce3bb4d36eabd03e824fd7bb44 Mon Sep 17 00:00:00 2001 From: Choihohee Date: Sat, 25 Nov 2023 21:03:30 +0900 Subject: [PATCH 06/12] =?UTF-8?q?docs:=20=EA=B8=B0=EB=8A=A5=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=EC=97=90=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EA=B5=AC?= =?UTF-8?q?=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 --- .../Service/{Result.java => WinnerResult.java} | 2 +- .../Service/RandomAdvanceOrstopTest.java | 4 ++++ .../java/racingcar/Service/UserInputTest.java | 4 ++++ .../java/racingcar/Service/userInputTest.java | 16 ---------------- 4 files changed, 9 insertions(+), 17 deletions(-) rename src/main/java/racingcar/Service/{Result.java => WinnerResult.java} (51%) create mode 100644 src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java create mode 100644 src/test/java/racingcar/Service/UserInputTest.java delete mode 100644 src/test/java/racingcar/Service/userInputTest.java diff --git a/src/main/java/racingcar/Service/Result.java b/src/main/java/racingcar/Service/WinnerResult.java similarity index 51% rename from src/main/java/racingcar/Service/Result.java rename to src/main/java/racingcar/Service/WinnerResult.java index 074058305e0..3fea023b402 100644 --- a/src/main/java/racingcar/Service/Result.java +++ b/src/main/java/racingcar/Service/WinnerResult.java @@ -1,4 +1,4 @@ package racingcar.Service; -public class Result { +public class WinnerResult { } diff --git a/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java b/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java new file mode 100644 index 00000000000..d1bfa06791f --- /dev/null +++ b/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java @@ -0,0 +1,4 @@ +import static org.junit.jupiter.api.Assertions.*; +class RandomAdvanceOrstopTest { + +} \ No newline at end of file diff --git a/src/test/java/racingcar/Service/UserInputTest.java b/src/test/java/racingcar/Service/UserInputTest.java new file mode 100644 index 00000000000..da321bfc64b --- /dev/null +++ b/src/test/java/racingcar/Service/UserInputTest.java @@ -0,0 +1,4 @@ +import static org.junit.jupiter.api.Assertions.*; +class UserInputTest { + +} \ No newline at end of file diff --git a/src/test/java/racingcar/Service/userInputTest.java b/src/test/java/racingcar/Service/userInputTest.java deleted file mode 100644 index 4e2b45f66f4..00000000000 --- a/src/test/java/racingcar/Service/userInputTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package racingcar.Service; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -public class userInputTest { - UserInput userInput = new UserInput(); - - @DisplayName("์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ") - @Test - public void userInputCarName() { - String input; - - } - -} From dd4f193271ea3bfbb1c8280f388997fdff329f6c Mon Sep 17 00:00:00 2001 From: Choihohee Date: Sat, 25 Nov 2023 21:05:26 +0900 Subject: [PATCH 07/12] =?UTF-8?q?docs:=20=EA=B8=B0=EB=8A=A5=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=EC=97=90=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EA=B5=AC?= =?UTF-8?q?=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 --- docs/README.md | 8 ++++++ .../Controller/RacingCarController.java | 12 ++++++--- .../Service/RandomAdvanceOrstop.java | 2 +- .../java/racingcar/Service/UserInput.java | 5 ++-- src/main/java/racingcar/View/InputView.java | 3 +-- src/main/java/racingcar/View/OutputView.java | 12 +++++++-- .../Service/RandomAdvanceOrstopTest.java | 5 +++- .../java/racingcar/Service/UserInputTest.java | 26 ++++++++++++++++++- 8 files changed, 60 insertions(+), 13 deletions(-) diff --git a/docs/README.md b/docs/README.md index a0e738a4bf8..0f2e4419402 100644 --- a/docs/README.md +++ b/docs/README.md @@ -14,6 +14,14 @@ ### ์šฐ์Šน์ž(๊ณต๋™๊ฐ€๋Šฅ)์„ ์ถœ๋ ฅํ•จ ### - ๊ณต๋™ ์šฐ์Šน์ผ ๊ฒฝ์šฐ "," ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•ด์ค€๋‹ค
- ๋ˆ„๊ฐ€ ๊ฐ€์žฅ๋งŽ์€ ์ „์ง„์„ ํ–ˆ๋Š”์ง€ ํ™•์ธ
+## TEST CODE ๊ตฌํ˜„ ## +- ์ •์ƒ์ ์œผ๋กœ ์ฐจ ์ด๋ฆ„์„ ์ž‘์„ฑํ•  ๊ฒฝ์šฐ +- ์ฐจ์ด๋ฆ„์ด 5์ž ์ดˆ๊ณผ์ธ ๊ฒฝ์šฐ Test +- ์ฐจ์ด๋ฆ„์ด ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ Test +- ์‹œ๋„ ํšŸ์ˆ˜ ์ •์ƒ์ ์ธ ๊ฐ’์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ +- ์‹œ๋„ ํšŸ์ˆ˜ ์ •์ˆ˜ ๊ฐ’์ด ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ Test +- ์‹œ๋„ ํšŸ์ˆ˜ 1 ์ด์ƒ์˜ ๊ฐ’์ด ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ Test + diff --git a/src/main/java/racingcar/Controller/RacingCarController.java b/src/main/java/racingcar/Controller/RacingCarController.java index 24489ec3a9a..6ba79cb81f5 100644 --- a/src/main/java/racingcar/Controller/RacingCarController.java +++ b/src/main/java/racingcar/Controller/RacingCarController.java @@ -3,11 +3,14 @@ import racingcar.Service.RandomAdvanceOrstop; import racingcar.Service.UserInput; import racingcar.View.InputView; +import racingcar.View.OutputView; +import racingcar.View.PrintScoreMessage; public class RacingCarController { InputView inputView; UserInput userInput = new UserInput(); RandomAdvanceOrstop randomAdvanceOrstop = new RandomAdvanceOrstop(); + OutputView outputView = new OutputView(); public void run() throws IllegalAccessException { startCar(); //์ž…๋ ฅ @@ -16,16 +19,17 @@ public void run() throws IllegalAccessException { } private void startCar() throws IllegalAccessException { //๊ธ€์ž์ˆ˜ 5์ดํ•˜ ์กฐ๊ฑด ์•„๋‹ ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ - inputView.printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" + InputView.printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" userInput.userInputCarName(); - inputView.printTryNumber(); //"์‹œ๋„ํ•  ํšŸ์ˆ˜๋Š” ๋ช‡ ํšŒ์ธ๊ฐ€์š”?" - userInput.tryNumber(Integer); + InputView.printTryNumber(); //"์‹œ๋„ํ•  ํšŸ์ˆ˜๋Š” ๋ช‡ ํšŒ์ธ๊ฐ€์š”?" + userInput.tryNumber(); } private void executionResult() { //์‹คํ–‰๊ฒฐ๊ณผ randomAdvanceOrstop.judgeAdvanceOrStop(); } - private void winnerResult() { + private void winnerResult() { //์ตœ์ข… ์šฐ์Šน์ž ๊ฒฐ๊ณผ + outputView.printWinnerResult(); } } diff --git a/src/main/java/racingcar/Service/RandomAdvanceOrstop.java b/src/main/java/racingcar/Service/RandomAdvanceOrstop.java index 81e46580da7..68e9391cd86 100644 --- a/src/main/java/racingcar/Service/RandomAdvanceOrstop.java +++ b/src/main/java/racingcar/Service/RandomAdvanceOrstop.java @@ -14,7 +14,7 @@ public class RandomAdvanceOrstop { Car car; public void judgeAdvanceOrStop() { - //๋ช‡๋ฒˆ ํ• ์ง€ ์ž…๋ ฅ ํ–ˆ์Œ car.tryNumber ๊ฐ€์ ธ์™€์„œ for๋ฌธ car.tryNumber.length ๋งŒํผ ๋Œ๋ ค์ฃผ๊ธฐ + //๋ช‡๋ฒˆ ์‹œ๋„ํ• ์ง€ ์ž…๋ ฅ ํ–ˆ์Œ car.tryNumber ๊ฐ€์ ธ์™€์„œ for๋ฌธ car.tryNumber.length ๋งŒํผ ๋Œ๋ ค์ฃผ๊ธฐ for (int i = 0; i < car.tryNumber; i++) { advanceOrStop(); } diff --git a/src/main/java/racingcar/Service/UserInput.java b/src/main/java/racingcar/Service/UserInput.java index 474cd6db860..e1f3412100d 100644 --- a/src/main/java/racingcar/Service/UserInput.java +++ b/src/main/java/racingcar/Service/UserInput.java @@ -26,8 +26,9 @@ public void judgeCarNameLength() throws IllegalAccessException{ } public void tryNumber() throws IllegalAccessException { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ - car.tryNumber = Integer.parseInt(readLine()); - if (car.tryNumber != ){ + try { + car.tryNumber = Integer.parseInt(readLine()); + } catch (NumberFormatException e) { throw new IllegalArgumentException("[Error] ์ •์ˆ˜๋งŒ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); } } diff --git a/src/main/java/racingcar/View/InputView.java b/src/main/java/racingcar/View/InputView.java index 5a514c24287..c29d3a3f002 100644 --- a/src/main/java/racingcar/View/InputView.java +++ b/src/main/java/racingcar/View/InputView.java @@ -1,9 +1,8 @@ package racingcar.View; -import racingcar.Controller.RacingCarController; + public class InputView { - RacingCarController racingCarController;gi public static void printInputCarName(){ System.out.println("๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„"); diff --git a/src/main/java/racingcar/View/OutputView.java b/src/main/java/racingcar/View/OutputView.java index 38ce4af5c36..d41ac8fecdc 100644 --- a/src/main/java/racingcar/View/OutputView.java +++ b/src/main/java/racingcar/View/OutputView.java @@ -1,6 +1,14 @@ package racingcar.View; -public class OutputView { +public class OutputView { //์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ - //๊ฒฐ๊ณผ ๋‚˜์™€์•ผํ•จ ์—ฌ๊ธฐ์„œ + public void printWinnerResult() { + + for (int i = 0; i < ; i++) { + + } + System.out.println( + + ); + } + + } diff --git a/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java b/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java index d1bfa06791f..0d21bcf0d0e 100644 --- a/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java +++ b/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java @@ -1,4 +1,7 @@ +package racingcar.Service; + import static org.junit.jupiter.api.Assertions.*; + class RandomAdvanceOrstopTest { - + } \ No newline at end of file diff --git a/src/test/java/racingcar/Service/UserInputTest.java b/src/test/java/racingcar/Service/UserInputTest.java index da321bfc64b..745d21ec433 100644 --- a/src/test/java/racingcar/Service/UserInputTest.java +++ b/src/test/java/racingcar/Service/UserInputTest.java @@ -1,4 +1,28 @@ +package racingcar.Service; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + import static org.junit.jupiter.api.Assertions.*; + class UserInputTest { - + @DisplayName("์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ") + @Test + public void ์ž๋™์ฐจ_์ด๋ฆ„_์ž…๋ ฅํ•˜๊ธฐ(){ + String carName1 = "hohee"; + String carNume2 = "pobi"; + //given + + + //when + + + //then + assertThat() + . + + + } + + } \ No newline at end of file From 3257d1947e23c82a7ceb980581e9dfa6d9b36b14 Mon Sep 17 00:00:00 2001 From: Choihohee Date: Sun, 26 Nov 2023 23:39:59 +0900 Subject: [PATCH 08/12] =?UTF-8?q?refactor:=20=EC=A0=84=EC=B2=B4=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81=20?= =?UTF-8?q?=EC=A7=84=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/RacingCarController.java | 23 ++++++------ src/main/java/racingcar/Model/Car.java | 31 ---------------- src/main/java/racingcar/Model/Cars.java | 29 +++++++++++++++ .../java/racingcar/Model/NumberConstant.java | 9 +++++ .../racingcar/Model/PrintInputMessage.java | 11 ++++++ .../racingcar/Service/JudgeWinnerResult.java | 22 +++++++++++ .../Service/RandomAdvanceOrstop.java | 37 ------------------- .../java/racingcar/Service/UserInput.java | 18 ++++----- .../java/racingcar/Service/WinnerResult.java | 4 -- .../racingcar/Util/RandomAdvanceOrstop.java | 33 +++++++++++++++++ src/main/java/racingcar/View/InputView.java | 6 --- src/main/java/racingcar/View/OutputView.java | 19 ++++++++-- .../Service/RandomAdvanceOrstopTest.java | 7 ---- .../java/racingcar/Service/UserInputTest.java | 22 ++++------- .../Util/RandomAdvanceOrstopTest.java | 17 +++++++++ 15 files changed, 163 insertions(+), 125 deletions(-) delete mode 100644 src/main/java/racingcar/Model/Car.java create mode 100644 src/main/java/racingcar/Model/Cars.java create mode 100644 src/main/java/racingcar/Model/NumberConstant.java create mode 100644 src/main/java/racingcar/Model/PrintInputMessage.java create mode 100644 src/main/java/racingcar/Service/JudgeWinnerResult.java delete mode 100644 src/main/java/racingcar/Service/RandomAdvanceOrstop.java delete mode 100644 src/main/java/racingcar/Service/WinnerResult.java create mode 100644 src/main/java/racingcar/Util/RandomAdvanceOrstop.java delete mode 100644 src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java create mode 100644 src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java diff --git a/src/main/java/racingcar/Controller/RacingCarController.java b/src/main/java/racingcar/Controller/RacingCarController.java index 6ba79cb81f5..deacbe8dbbb 100644 --- a/src/main/java/racingcar/Controller/RacingCarController.java +++ b/src/main/java/racingcar/Controller/RacingCarController.java @@ -1,35 +1,36 @@ package racingcar.Controller; -import racingcar.Service.RandomAdvanceOrstop; +import racingcar.Model.Cars; +import racingcar.Service.JudgeWinnerResult; +import racingcar.Util.RandomAdvanceOrstop; import racingcar.Service.UserInput; -import racingcar.View.InputView; import racingcar.View.OutputView; -import racingcar.View.PrintScoreMessage; +import static racingcar.Model.PrintInputMessage.*; public class RacingCarController { - InputView inputView; UserInput userInput = new UserInput(); RandomAdvanceOrstop randomAdvanceOrstop = new RandomAdvanceOrstop(); OutputView outputView = new OutputView(); + Cars cars = new Cars(); + JudgeWinnerResult judgeWinnerResult = new JudgeWinnerResult(); public void run() throws IllegalAccessException { startCar(); //์ž…๋ ฅ - executionResult(); //๊ฒฐ๊ณผ + executionResult(); //์‹คํ–‰๊ฒฐ๊ณผ winnerResult(); //์ตœ์ข… ์šฐ์Šน์ž ๊ฒฐ๊ณผ } private void startCar() throws IllegalAccessException { //๊ธ€์ž์ˆ˜ 5์ดํ•˜ ์กฐ๊ฑด ์•„๋‹ ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ - InputView.printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" + printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" userInput.userInputCarName(); - InputView.printTryNumber(); //"์‹œ๋„ํ•  ํšŸ์ˆ˜๋Š” ๋ช‡ ํšŒ์ธ๊ฐ€์š”?" + printTryNumber(); //"์‹œ๋„ํ•  ํšŸ์ˆ˜๋Š” ๋ช‡ ํšŒ์ธ๊ฐ€์š”?" userInput.tryNumber(); } - private void executionResult() { //์‹คํ–‰๊ฒฐ๊ณผ + private void executionResult() throws IllegalAccessException { //์‹คํ–‰๊ฒฐ๊ณผ randomAdvanceOrstop.judgeAdvanceOrStop(); } - private void winnerResult() { //์ตœ์ข… ์šฐ์Šน์ž ๊ฒฐ๊ณผ - outputView.printWinnerResult(); + public void winnerResult() throws IllegalAccessException { //์ตœ์ข… ์šฐ์Šน์ž ๊ฒฐ๊ณผ + judgeWinnerResult.judgeWinner(); } - } diff --git a/src/main/java/racingcar/Model/Car.java b/src/main/java/racingcar/Model/Car.java deleted file mode 100644 index 187bb8b8efc..00000000000 --- a/src/main/java/racingcar/Model/Car.java +++ /dev/null @@ -1,31 +0,0 @@ -package racingcar.Model; - -import static camp.nextstep.edu.missionutils.Console.readLine; - -public class Car { - public int tryNumber; - -// public String getCarName() { -// return carName; -// } -// -// public void setCarName(String carName) { -// this.carName = carName; -// } - - public String carName; //carSize ํฌ๊ธฐ์˜ ๋ฌธ์ž์—ด์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด ์„ ์–ธ ๋ฐ ์ƒ์„ฑ - - - -// public String[] getCarList() { -// return carList; -// } -// -// public void setCarList(String[] carList) { -// this.carList = carList; -// } - - public String[] carList; //์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฐจ ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ - - -} diff --git a/src/main/java/racingcar/Model/Cars.java b/src/main/java/racingcar/Model/Cars.java new file mode 100644 index 00000000000..70fa4900a4c --- /dev/null +++ b/src/main/java/racingcar/Model/Cars.java @@ -0,0 +1,29 @@ +package racingcar.Model; + +public class Cars { + public int tryNumber; + + public String getCarName() { + return carName; + } + + public void setCarName(String carName) { + this.carName = carName; + } + + public String carName; //carSize ํฌ๊ธฐ์˜ ๋ฌธ์ž์—ด์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด ์„ ์–ธ ๋ฐ ์ƒ์„ฑ + + + + public String[] getCarList() { + return carList; + } + + public void setCarList(String[] carList) { + this.carList = carList; + } + + public String[] carList; //์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฐจ ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ + + +} diff --git a/src/main/java/racingcar/Model/NumberConstant.java b/src/main/java/racingcar/Model/NumberConstant.java new file mode 100644 index 00000000000..62acdeeb926 --- /dev/null +++ b/src/main/java/racingcar/Model/NumberConstant.java @@ -0,0 +1,9 @@ +package racingcar.Model; + +public class NumberConstant { //๋งค์ง๋„˜๋ฒ„ ๋ชจ์•„๋‘  + public final static int MIN_RANDOM_NUMBER = 0; + public final static int MAX_RANDOM_NUMBER = 9; + public final static int CAR_ADVANCE_NUMBER = 4; + public final static int MAX_CAR_NAME_SIZE = 5; + +} diff --git a/src/main/java/racingcar/Model/PrintInputMessage.java b/src/main/java/racingcar/Model/PrintInputMessage.java new file mode 100644 index 00000000000..08730c176e9 --- /dev/null +++ b/src/main/java/racingcar/Model/PrintInputMessage.java @@ -0,0 +1,11 @@ +package racingcar.Model; + +public class PrintInputMessage { + public static void printInputCarName(){ + System.out.println("๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„"); + } + + public static void printTryNumber(){ + System.out.println("์‹œ๋„ํ•  ํšŒ์ˆ˜๋Š” ๋ช‡ํšŒ์ธ๊ฐ€์š”?"); + } +} diff --git a/src/main/java/racingcar/Service/JudgeWinnerResult.java b/src/main/java/racingcar/Service/JudgeWinnerResult.java new file mode 100644 index 00000000000..02aded23229 --- /dev/null +++ b/src/main/java/racingcar/Service/JudgeWinnerResult.java @@ -0,0 +1,22 @@ +package racingcar.Service; + +import racingcar.Model.Cars; +import racingcar.Util.RandomAdvanceOrstop; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Random; + +public class JudgeWinnerResult { + Cars cars = new Cars(); + + public String judgeWinner(){ + List winnerList = new ArrayList(); + + + String[] WinnerList = new String[5]; + return String.join(", ",winnerList); + } + +} diff --git a/src/main/java/racingcar/Service/RandomAdvanceOrstop.java b/src/main/java/racingcar/Service/RandomAdvanceOrstop.java deleted file mode 100644 index 68e9391cd86..00000000000 --- a/src/main/java/racingcar/Service/RandomAdvanceOrstop.java +++ /dev/null @@ -1,37 +0,0 @@ -package racingcar.Service; -import camp.nextstep.edu.missionutils.Randoms; -import racingcar.Model.Car; - -public class RandomAdvanceOrstop { - - private final static int MIN_RANDOM_NUMBER = 0; - private final static int MAX_RANDOM_NUMBER = 9; - private final static int ADVANCE_NUMBER = 4; - public String advanceString = new String("-"); - - UserInput userInput = new UserInput(); - - Car car; - - public void judgeAdvanceOrStop() { - //๋ช‡๋ฒˆ ์‹œ๋„ํ• ์ง€ ์ž…๋ ฅ ํ–ˆ์Œ car.tryNumber ๊ฐ€์ ธ์™€์„œ for๋ฌธ car.tryNumber.length ๋งŒํผ ๋Œ๋ ค์ฃผ๊ธฐ - for (int i = 0; i < car.tryNumber; i++) { - advanceOrStop(); - } - } - - private void advanceOrStop() { //์ „์ง„ํ•˜๋Š” ๋ฉ”์†Œ๋“œ, ์ถœ๋ ฅ - - for (int j = 0; j < (car.carList).length; j++) { - int judgeNumber = Randoms.pickNumberInRange(MIN_RANDOM_NUMBER, MAX_RANDOM_NUMBER); - - if (judgeNumber >= ADVANCE_NUMBER){ //4์ด์ƒ์ด๋ผ๋ฉด ์ „์ง„ - car.carList[j] = car.carList[j].concat(advanceString); - System.out.println(car.carList[j]); //์ „์ง„์ธ ์ฐจ๋Š” + "-"๋˜์„œ ์ถœ๋ ฅ - } - else{ - System.out.println(car.carList[j]);//๋ฉˆ์ถค์ธ ์ฐจ๋Š” ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ - } - } - } -} \ No newline at end of file diff --git a/src/main/java/racingcar/Service/UserInput.java b/src/main/java/racingcar/Service/UserInput.java index e1f3412100d..103ac31e43a 100644 --- a/src/main/java/racingcar/Service/UserInput.java +++ b/src/main/java/racingcar/Service/UserInput.java @@ -1,38 +1,36 @@ package racingcar.Service; -import racingcar.Model.Car; +import racingcar.Model.Cars; import static camp.nextstep.edu.missionutils.Console.readLine; +import static racingcar.Model.NumberConstant.*; public class UserInput { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ & ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ - Car car = new Car(); + Cars car = new Cars(); - public void userInputCarName () throws IllegalAccessException{ //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ + public void userInputCarName() throws IllegalAccessException{ //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ car.carName = readLine(); car.carList = car.carName.split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ - judgeCarNameLength(); - System.out.println(car.carName); } public void judgeCarNameLength() throws IllegalAccessException{ for (int i = 0; i < (car.carList).length; i++) { - if ((car.carList[i]).length() > 5) { + if ((car.carList[i]).length() > MAX_CAR_NAME_SIZE) { //MAX_CAR_NAME_SIZE = 5; throw new IllegalArgumentException("[Error] ์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); } } } - public void tryNumber() throws IllegalAccessException { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + public int tryNumber() throws IllegalAccessException { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ try { car.tryNumber = Integer.parseInt(readLine()); + } catch (NumberFormatException e) { throw new IllegalArgumentException("[Error] ์ •์ˆ˜๋งŒ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); } + return car.tryNumber; } - - - } diff --git a/src/main/java/racingcar/Service/WinnerResult.java b/src/main/java/racingcar/Service/WinnerResult.java deleted file mode 100644 index 3fea023b402..00000000000 --- a/src/main/java/racingcar/Service/WinnerResult.java +++ /dev/null @@ -1,4 +0,0 @@ -package racingcar.Service; - -public class WinnerResult { -} diff --git a/src/main/java/racingcar/Util/RandomAdvanceOrstop.java b/src/main/java/racingcar/Util/RandomAdvanceOrstop.java new file mode 100644 index 00000000000..0a130bc61cd --- /dev/null +++ b/src/main/java/racingcar/Util/RandomAdvanceOrstop.java @@ -0,0 +1,33 @@ +package racingcar.Util; +import camp.nextstep.edu.missionutils.Randoms; +import racingcar.Model.Cars; +import racingcar.Service.UserInput; +import static racingcar.Model.NumberConstant.*; + +public class RandomAdvanceOrstop { + + + public static final String HYPHEN = "-"; + + UserInput userInput = new UserInput(); + + Cars car; + + public void judgeAdvanceOrStop() { + if (judgeadvanceOrStopNumber() >= CAR_ADVANCE_NUMBER){ + Move(); + } + } + + + private int judgeadvanceOrStopNumber() { //์ „์ง„ํ•˜๋Š” ๋ฉ”์†Œ๋“œ, ์ถœ๋ ฅ + return Randoms.pickNumberInRange(MIN_RANDOM_NUMBER, MAX_RANDOM_NUMBER); + } + + + private void Move() { + for (int i = 0; i < car.carList.length; i++) { + car.carList[i] = car.carList[i].concat(HYPHEN); + } + } +} diff --git a/src/main/java/racingcar/View/InputView.java b/src/main/java/racingcar/View/InputView.java index c29d3a3f002..73fdc50823c 100644 --- a/src/main/java/racingcar/View/InputView.java +++ b/src/main/java/racingcar/View/InputView.java @@ -4,11 +4,5 @@ public class InputView { - public static void printInputCarName(){ - System.out.println("๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„"); - } - public static void printTryNumber(){ - System.out.println("์‹œ๋„ํ•  ํšŒ์ˆ˜๋Š” ๋ช‡ํšŒ์ธ๊ฐ€์š”?"); - } } diff --git a/src/main/java/racingcar/View/OutputView.java b/src/main/java/racingcar/View/OutputView.java index d41ac8fecdc..5d60b98afd4 100644 --- a/src/main/java/racingcar/View/OutputView.java +++ b/src/main/java/racingcar/View/OutputView.java @@ -1,14 +1,25 @@ package racingcar.View; +import racingcar.Service.UserInput; + public class OutputView { //์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ - public void printWinnerResult() { + UserInput userInput = new UserInput(); + public void printWinnerResult(int tryNumber) throws IllegalAccessException { + for (int i = 0; i < tryNumber; i++) { - for (int i = 0; i < ; i++) { - } - System.out.println( + + ); + System.out.println(); } + + public static void printCarPosition(int carPosition) { + for (int i = 0; i < carPosition; i++) { + System.out.print("-"); + } + } + + + } diff --git a/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java b/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java deleted file mode 100644 index 0d21bcf0d0e..00000000000 --- a/src/test/java/racingcar/Service/RandomAdvanceOrstopTest.java +++ /dev/null @@ -1,7 +0,0 @@ -package racingcar.Service; - -import static org.junit.jupiter.api.Assertions.*; - -class RandomAdvanceOrstopTest { - -} \ No newline at end of file diff --git a/src/test/java/racingcar/Service/UserInputTest.java b/src/test/java/racingcar/Service/UserInputTest.java index 745d21ec433..55f48a02d21 100644 --- a/src/test/java/racingcar/Service/UserInputTest.java +++ b/src/test/java/racingcar/Service/UserInputTest.java @@ -2,26 +2,18 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; class UserInputTest { @DisplayName("์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ") @Test - public void ์ž๋™์ฐจ_์ด๋ฆ„_์ž…๋ ฅํ•˜๊ธฐ(){ - String carName1 = "hohee"; - String carNume2 = "pobi"; - //given - - + void ์ž๋™์ฐจ_์ด๋ฆ„์—_๋Œ€ํ•œ_์˜ˆ์™ธ_์ถœ๋ ฅํ…Œ์ŠคํŠธ() { //when - - - //then - assertThat() - . - - + UserInput userInput = new UserInput(); + assertThatThrownBy(() -> { + userInput.userInputCarName(); + }) + .isInstanceOf(IllegalArgumentException.class); } diff --git a/src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java b/src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java new file mode 100644 index 00000000000..7e2e62969cf --- /dev/null +++ b/src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java @@ -0,0 +1,17 @@ +package racingcar.Util; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import racingcar.Model.Cars; + +class RandomAdvanceOrstopTest { + @DisplayName("๋žœ๋ค์ˆซ์ž๊ฐ€ 4์ด์ƒ์ผ ๋•Œ๋งŒ ์ „์ง„, ์•„๋‹ˆ๋ฉด ๋ฉˆ์ถค") + @Test + public void advanceOrStop() { + Cars car = new Cars(); + + assertFalse(car.); + + } + +} \ No newline at end of file From 2cabfd8e27986eabe829439f92d0ef94bbb332b8 Mon Sep 17 00:00:00 2001 From: Choihohee Date: Mon, 27 Nov 2023 23:15:11 +0900 Subject: [PATCH 09/12] feat: remove PrintScoreMessge file --- src/main/java/racingcar/Service/JudgeWinnerResult.java | 1 - src/main/java/racingcar/View/PrintScoreMessage.java | 7 ------- 2 files changed, 8 deletions(-) delete mode 100644 src/main/java/racingcar/View/PrintScoreMessage.java diff --git a/src/main/java/racingcar/Service/JudgeWinnerResult.java b/src/main/java/racingcar/Service/JudgeWinnerResult.java index 02aded23229..ce690d30730 100644 --- a/src/main/java/racingcar/Service/JudgeWinnerResult.java +++ b/src/main/java/racingcar/Service/JudgeWinnerResult.java @@ -14,7 +14,6 @@ public class JudgeWinnerResult { public String judgeWinner(){ List winnerList = new ArrayList(); - String[] WinnerList = new String[5]; return String.join(", ",winnerList); } diff --git a/src/main/java/racingcar/View/PrintScoreMessage.java b/src/main/java/racingcar/View/PrintScoreMessage.java deleted file mode 100644 index f5c8bc66da2..00000000000 --- a/src/main/java/racingcar/View/PrintScoreMessage.java +++ /dev/null @@ -1,7 +0,0 @@ -package racingcar.View; - -public class PrintScoreMessage { - public static void PrintMessage(){ - - } -} From 61e7e0892cf43d59c8c97459feb73a2e8f65c955 Mon Sep 17 00:00:00 2001 From: Choihohee Date: Tue, 5 Dec 2023 22:21:43 +0900 Subject: [PATCH 10/12] =?UTF-8?q?add:=20ErrorInfomaion=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EC=97=90=20=EC=97=90=EB=9F=AC=EB=AC=B8?= =?UTF-8?q?=EA=B5=AC=EB=A5=BC=20=EB=AA=A8=EC=95=84=EB=91=90=EC=97=88?= =?UTF-8?q?=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Infomation/ErrorInfomation.java | 2 ++ .../java/racingcar/{Model => Infomation}/NumberConstant.java | 0 .../java/racingcar/{Model => Infomation}/PrintInputMessage.java | 0 3 files changed, 2 insertions(+) create mode 100644 src/main/java/racingcar/Infomation/ErrorInfomation.java rename src/main/java/racingcar/{Model => Infomation}/NumberConstant.java (100%) rename src/main/java/racingcar/{Model => Infomation}/PrintInputMessage.java (100%) diff --git a/src/main/java/racingcar/Infomation/ErrorInfomation.java b/src/main/java/racingcar/Infomation/ErrorInfomation.java new file mode 100644 index 00000000000..43a44c96a17 --- /dev/null +++ b/src/main/java/racingcar/Infomation/ErrorInfomation.java @@ -0,0 +1,2 @@ +package racingcar.Infomation;public class ErrorInfomation { +} diff --git a/src/main/java/racingcar/Model/NumberConstant.java b/src/main/java/racingcar/Infomation/NumberConstant.java similarity index 100% rename from src/main/java/racingcar/Model/NumberConstant.java rename to src/main/java/racingcar/Infomation/NumberConstant.java diff --git a/src/main/java/racingcar/Model/PrintInputMessage.java b/src/main/java/racingcar/Infomation/PrintInputMessage.java similarity index 100% rename from src/main/java/racingcar/Model/PrintInputMessage.java rename to src/main/java/racingcar/Infomation/PrintInputMessage.java From 46115bb81bbf991039400dd7140592fdf1bd9682 Mon Sep 17 00:00:00 2001 From: Choihohee Date: Tue, 5 Dec 2023 23:17:45 +0900 Subject: [PATCH 11/12] =?UTF-8?q?feat:=20UserInput=EC=9D=84=20UserInputCar?= =?UTF-8?q?Name=EA=B3=BC=20UserInputTryNumber=20=EB=91=90=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EB=A1=9C=20=EB=B6=84=EB=A6=AC=ED=9B=84=20?= =?UTF-8?q?=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../racingcar/Model/{Cars.java => Car.java} | 2 +- .../java/racingcar/Service/UserInput.java | 36 --------------- .../racingcar/Service/UserInputCarName.java | 44 +++++++++++++++++++ .../racingcar/Service/UserInputTryNumber.java | 2 + ...ceOrstop.java => RandomAdvanceOrStop.java} | 0 5 files changed, 47 insertions(+), 37 deletions(-) rename src/main/java/racingcar/Model/{Cars.java => Car.java} (96%) delete mode 100644 src/main/java/racingcar/Service/UserInput.java create mode 100644 src/main/java/racingcar/Service/UserInputCarName.java create mode 100644 src/main/java/racingcar/Service/UserInputTryNumber.java rename src/main/java/racingcar/Util/{RandomAdvanceOrstop.java => RandomAdvanceOrStop.java} (100%) diff --git a/src/main/java/racingcar/Model/Cars.java b/src/main/java/racingcar/Model/Car.java similarity index 96% rename from src/main/java/racingcar/Model/Cars.java rename to src/main/java/racingcar/Model/Car.java index 70fa4900a4c..95511711a63 100644 --- a/src/main/java/racingcar/Model/Cars.java +++ b/src/main/java/racingcar/Model/Car.java @@ -1,6 +1,6 @@ package racingcar.Model; -public class Cars { +public class Car { public int tryNumber; public String getCarName() { diff --git a/src/main/java/racingcar/Service/UserInput.java b/src/main/java/racingcar/Service/UserInput.java deleted file mode 100644 index 103ac31e43a..00000000000 --- a/src/main/java/racingcar/Service/UserInput.java +++ /dev/null @@ -1,36 +0,0 @@ -package racingcar.Service; - -import racingcar.Model.Cars; - -import static camp.nextstep.edu.missionutils.Console.readLine; -import static racingcar.Model.NumberConstant.*; - -public class UserInput { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ & ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ - - Cars car = new Cars(); - - public void userInputCarName() throws IllegalAccessException{ //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ - car.carName = readLine(); - car.carList = car.carName.split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ - judgeCarNameLength(); - System.out.println(car.carName); - } - - public void judgeCarNameLength() throws IllegalAccessException{ - for (int i = 0; i < (car.carList).length; i++) { - if ((car.carList[i]).length() > MAX_CAR_NAME_SIZE) { //MAX_CAR_NAME_SIZE = 5; - throw new IllegalArgumentException("[Error] ์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); - } - } - } - - public int tryNumber() throws IllegalAccessException { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ - try { - car.tryNumber = Integer.parseInt(readLine()); - - } catch (NumberFormatException e) { - throw new IllegalArgumentException("[Error] ์ •์ˆ˜๋งŒ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); - } - return car.tryNumber; - } -} diff --git a/src/main/java/racingcar/Service/UserInputCarName.java b/src/main/java/racingcar/Service/UserInputCarName.java new file mode 100644 index 00000000000..9d152714100 --- /dev/null +++ b/src/main/java/racingcar/Service/UserInputCarName.java @@ -0,0 +1,44 @@ +package racingcar.Service; + +import racingcar.Model.Car; + +import static camp.nextstep.edu.missionutils.Console.readLine; +import static racingcar.Infomation.ErrorInfomation.CAR_NAME_LIMIT_ERROR_MESSAGE; +import static racingcar.Infomation.NumberConstant.*; +import static racingcar.Infomation.PrintInputMessage.printInputCarName; + +public class UserInput { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ & ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + + Car car = new Car(); + + public void userInputCarName() { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ + try { + printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" + car.setCarName(readLine()); + car.carList = car.getCarName().split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ + } catch (IllegalArgumentException e) { + throw new IllegalArgumentException(CAR_NAME_LIMIT_ERROR_MESSAGE); //"์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." + } + + judgeCarNameLength(); + System.out.println(car.carName); + } + + public void judgeCarNameLength() throws IllegalAccessException{ + for (int i = 0; i < (car.carList).length; i++) { + if ((car.carList[i]).length() > MAX_CAR_NAME_SIZE) { //MAX_CAR_NAME_SIZE = 5; + throw new IllegalArgumentException("[Error] ์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); + } + } + } + + public void tryNumber() { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + try { + car.tryNumber = Integer.parseInt(readLine()); + + } catch (NumberFormatException e) { + throw new IllegalArgumentException("[Error] ์ •์ˆ˜๋งŒ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); + } + System.out.println(car.tryNumber); + } +} diff --git a/src/main/java/racingcar/Service/UserInputTryNumber.java b/src/main/java/racingcar/Service/UserInputTryNumber.java new file mode 100644 index 00000000000..10b97af1c10 --- /dev/null +++ b/src/main/java/racingcar/Service/UserInputTryNumber.java @@ -0,0 +1,2 @@ +package racingcar.Service;public class UserInputTryNumber { +} diff --git a/src/main/java/racingcar/Util/RandomAdvanceOrstop.java b/src/main/java/racingcar/Util/RandomAdvanceOrStop.java similarity index 100% rename from src/main/java/racingcar/Util/RandomAdvanceOrstop.java rename to src/main/java/racingcar/Util/RandomAdvanceOrStop.java From e5d11c58f025446a0cff33bcfd2d51ea995bc74e Mon Sep 17 00:00:00 2001 From: Choihohee Date: Sat, 9 Dec 2023 22:31:06 +0900 Subject: [PATCH 12/12] =?UTF-8?q?feat:=20OutPutView=EC=9D=98=20UserInputCa?= =?UTF-8?q?rNumber=20=EC=83=9D=EC=84=B1=EC=9E=90=EB=A5=BC=20UserInputTryNu?= =?UTF-8?q?mber=20=EC=83=9D=EC=84=B1=EC=9E=90=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/RacingCarController.java | 24 +++++------ .../racingcar/Infomation/ErrorInfomation.java | 7 +++- .../racingcar/Infomation/NumberConstant.java | 2 +- .../Infomation/PrintInputMessage.java | 2 +- src/main/java/racingcar/Model/Car.java | 8 ++++ .../racingcar/Service/JudgeWinnerResult.java | 7 +--- .../racingcar/Service/UserInputCarName.java | 33 ++++++++------- .../racingcar/Service/UserInputTryNumber.java | 28 ++++++++++++- .../racingcar/Util/RandomAdvanceOrStop.java | 41 +++++++++++-------- src/main/java/racingcar/View/OutputView.java | 12 +++--- .../java/racingcar/Service/UserInputTest.java | 2 +- .../Util/RandomAdvanceOrstopTest.java | 4 +- 12 files changed, 108 insertions(+), 62 deletions(-) diff --git a/src/main/java/racingcar/Controller/RacingCarController.java b/src/main/java/racingcar/Controller/RacingCarController.java index deacbe8dbbb..7f4ff13b5f4 100644 --- a/src/main/java/racingcar/Controller/RacingCarController.java +++ b/src/main/java/racingcar/Controller/RacingCarController.java @@ -1,18 +1,19 @@ package racingcar.Controller; -import racingcar.Model.Cars; +import racingcar.Model.Car; import racingcar.Service.JudgeWinnerResult; -import racingcar.Util.RandomAdvanceOrstop; -import racingcar.Service.UserInput; +import racingcar.Service.UserInputTryNumber; +import racingcar.Util.RandomAdvanceOrStop; +import racingcar.Service.UserInputCarName; import racingcar.View.OutputView; -import static racingcar.Model.PrintInputMessage.*; public class RacingCarController { - UserInput userInput = new UserInput(); - RandomAdvanceOrstop randomAdvanceOrstop = new RandomAdvanceOrstop(); + Car cars = new Car(); + UserInputCarName userInputCarName = new UserInputCarName(); + UserInputTryNumber userInputTryNumber = new UserInputTryNumber(); OutputView outputView = new OutputView(); - Cars cars = new Cars(); JudgeWinnerResult judgeWinnerResult = new JudgeWinnerResult(); + RandomAdvanceOrStop randomAdvanceOrstop = new RandomAdvanceOrStop(); public void run() throws IllegalAccessException { startCar(); //์ž…๋ ฅ @@ -20,17 +21,16 @@ public void run() throws IllegalAccessException { winnerResult(); //์ตœ์ข… ์šฐ์Šน์ž ๊ฒฐ๊ณผ } - private void startCar() throws IllegalAccessException { //๊ธ€์ž์ˆ˜ 5์ดํ•˜ ์กฐ๊ฑด ์•„๋‹ ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ - printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" - userInput.userInputCarName(); - printTryNumber(); //"์‹œ๋„ํ•  ํšŸ์ˆ˜๋Š” ๋ช‡ ํšŒ์ธ๊ฐ€์š”?" - userInput.tryNumber(); + private void startCar() throws IllegalAccessException { + userInputCarName.userInputCarName(); + userInputTryNumber.userInputTryNumber(); } private void executionResult() throws IllegalAccessException { //์‹คํ–‰๊ฒฐ๊ณผ randomAdvanceOrstop.judgeAdvanceOrStop(); } public void winnerResult() throws IllegalAccessException { //์ตœ์ข… ์šฐ์Šน์ž ๊ฒฐ๊ณผ + outputView.printWinnerResult(); judgeWinnerResult.judgeWinner(); } } diff --git a/src/main/java/racingcar/Infomation/ErrorInfomation.java b/src/main/java/racingcar/Infomation/ErrorInfomation.java index 43a44c96a17..29498ff858f 100644 --- a/src/main/java/racingcar/Infomation/ErrorInfomation.java +++ b/src/main/java/racingcar/Infomation/ErrorInfomation.java @@ -1,2 +1,7 @@ -package racingcar.Infomation;public class ErrorInfomation { +package racingcar.Infomation; + +public class ErrorInfomation { + public static final String CAR_NAME_LIMIT_ERROR_MESSAGE = "์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."; + public static final String CAR_NAME_DUPLICATED_ERROR_MESSAGE = "์ค‘๋ณต๋œ ์ž๋™์ฐจ ์ด๋ฆ„์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค."; + public static final String TRY_NUMBER_COUNT_ERROR_MESSAGE = "์‹œ๋„ ํšŸ์ˆ˜๋Š” 1๋ถ€ํ„ฐ 9๊นŒ์ง€์ž…๋‹ˆ๋‹ค."; } diff --git a/src/main/java/racingcar/Infomation/NumberConstant.java b/src/main/java/racingcar/Infomation/NumberConstant.java index 62acdeeb926..b26449625ac 100644 --- a/src/main/java/racingcar/Infomation/NumberConstant.java +++ b/src/main/java/racingcar/Infomation/NumberConstant.java @@ -1,4 +1,4 @@ -package racingcar.Model; +package racingcar.Infomation; public class NumberConstant { //๋งค์ง๋„˜๋ฒ„ ๋ชจ์•„๋‘  public final static int MIN_RANDOM_NUMBER = 0; diff --git a/src/main/java/racingcar/Infomation/PrintInputMessage.java b/src/main/java/racingcar/Infomation/PrintInputMessage.java index 08730c176e9..bef9f436d23 100644 --- a/src/main/java/racingcar/Infomation/PrintInputMessage.java +++ b/src/main/java/racingcar/Infomation/PrintInputMessage.java @@ -1,4 +1,4 @@ -package racingcar.Model; +package racingcar.Infomation; public class PrintInputMessage { public static void printInputCarName(){ diff --git a/src/main/java/racingcar/Model/Car.java b/src/main/java/racingcar/Model/Car.java index 95511711a63..9e52fa7839b 100644 --- a/src/main/java/racingcar/Model/Car.java +++ b/src/main/java/racingcar/Model/Car.java @@ -1,6 +1,14 @@ package racingcar.Model; public class Car { + public int getTryNumber() { + return tryNumber; + } + + public void setTryNumber(int tryNumber) { + this.tryNumber = tryNumber; + } + public int tryNumber; public String getCarName() { diff --git a/src/main/java/racingcar/Service/JudgeWinnerResult.java b/src/main/java/racingcar/Service/JudgeWinnerResult.java index ce690d30730..bfa67602d9e 100644 --- a/src/main/java/racingcar/Service/JudgeWinnerResult.java +++ b/src/main/java/racingcar/Service/JudgeWinnerResult.java @@ -1,15 +1,12 @@ package racingcar.Service; -import racingcar.Model.Cars; -import racingcar.Util.RandomAdvanceOrstop; +import racingcar.Model.Car; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.Random; public class JudgeWinnerResult { - Cars cars = new Cars(); + Car cars = new Car(); public String judgeWinner(){ List winnerList = new ArrayList(); diff --git a/src/main/java/racingcar/Service/UserInputCarName.java b/src/main/java/racingcar/Service/UserInputCarName.java index 9d152714100..b09360e0bda 100644 --- a/src/main/java/racingcar/Service/UserInputCarName.java +++ b/src/main/java/racingcar/Service/UserInputCarName.java @@ -7,38 +7,37 @@ import static racingcar.Infomation.NumberConstant.*; import static racingcar.Infomation.PrintInputMessage.printInputCarName; -public class UserInput { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ & ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ +public class UserInputCarName { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ Car car = new Car(); - public void userInputCarName() { //์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„ ์ž…๋ ฅ + public void userInputCarName() throws IllegalAccessException { try { printInputCarName(); //"๊ฒฝ์ฃผํ•  ์ž๋™์ฐจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.(์ด๋ฆ„์€ ์‰ผํ‘œ(,) ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„" car.setCarName(readLine()); car.carList = car.getCarName().split(","); //","์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž…๋ ฅ + + if (!judgeCarNameLength()){ + throw new IllegalArgumentException(CAR_NAME_LIMIT_ERROR_MESSAGE); //"์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." + } + } catch (IllegalArgumentException e) { - throw new IllegalArgumentException(CAR_NAME_LIMIT_ERROR_MESSAGE); //"์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž๋ฅผ ๋„˜๊ธธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค." + System.out.println(car.carName); } - - judgeCarNameLength(); - System.out.println(car.carName); } - public void judgeCarNameLength() throws IllegalAccessException{ + private boolean judgeCarNameLength() { for (int i = 0; i < (car.carList).length; i++) { if ((car.carList[i]).length() > MAX_CAR_NAME_SIZE) { //MAX_CAR_NAME_SIZE = 5; - throw new IllegalArgumentException("[Error] ์ž๋™์ฐจ ์ด๋ฆ„์€ 5๊ธ€์ž ์ดํ•˜๋กœ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); + return false; } } + return true; } - - public void tryNumber() { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ - try { - car.tryNumber = Integer.parseInt(readLine()); - - } catch (NumberFormatException e) { - throw new IllegalArgumentException("[Error] ์ •์ˆ˜๋งŒ ์ž…๋ ฅ๋ฐ”๋ž๋‹ˆ๋‹ค."); - } - System.out.println(car.tryNumber); + /* + private boolean judgeCarNameLength() { + return List.of(car.carList).stream().allMatch(name -> name.length() <= MAX_CAR_NAME_SIZE); } + ์œ„์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. + */ } diff --git a/src/main/java/racingcar/Service/UserInputTryNumber.java b/src/main/java/racingcar/Service/UserInputTryNumber.java index 10b97af1c10..509476c26a5 100644 --- a/src/main/java/racingcar/Service/UserInputTryNumber.java +++ b/src/main/java/racingcar/Service/UserInputTryNumber.java @@ -1,2 +1,28 @@ -package racingcar.Service;public class UserInputTryNumber { +package racingcar.Service; + +import racingcar.Model.Car; + +import static camp.nextstep.edu.missionutils.Console.readLine; +import static racingcar.Infomation.ErrorInfomation.TRY_NUMBER_COUNT_ERROR_MESSAGE; +import static racingcar.Infomation.PrintInputMessage.printTryNumber; + +public class UserInputTryNumber { //์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๋„ํ•  ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ + Car car = new Car(); + public void userInputTryNumber() throws IllegalAccessException { + try { + printTryNumber(); //"์‹œ๋„ํ•  ํšŸ์ˆ˜๋Š” ๋ช‡ ํšŒ์ธ๊ฐ€์š”?" + car.tryNumber = Integer.parseInt(readLine()); + + if (!judgeTryNumberLength()){ + throw new IllegalArgumentException(TRY_NUMBER_COUNT_ERROR_MESSAGE); + } + } catch (IllegalArgumentException e) { + System.out.println(car.tryNumber); + } + } + + private boolean judgeTryNumberLength() { + return car.tryNumber >= 1 && car.tryNumber <= 9; + } + } diff --git a/src/main/java/racingcar/Util/RandomAdvanceOrStop.java b/src/main/java/racingcar/Util/RandomAdvanceOrStop.java index 0a130bc61cd..a345b763621 100644 --- a/src/main/java/racingcar/Util/RandomAdvanceOrStop.java +++ b/src/main/java/racingcar/Util/RandomAdvanceOrStop.java @@ -1,33 +1,42 @@ package racingcar.Util; import camp.nextstep.edu.missionutils.Randoms; -import racingcar.Model.Cars; -import racingcar.Service.UserInput; -import static racingcar.Model.NumberConstant.*; - -public class RandomAdvanceOrstop { +import racingcar.Model.Car; +import racingcar.Service.UserInputCarName; +import static racingcar.Infomation.NumberConstant.*; +public class RandomAdvanceOrStop { public static final String HYPHEN = "-"; - - UserInput userInput = new UserInput(); - - Cars car; - - public void judgeAdvanceOrStop() { - if (judgeadvanceOrStopNumber() >= CAR_ADVANCE_NUMBER){ - Move(); + UserInputCarName userInput = new UserInputCarName(); + Car car; + + public void judgeAdvanceOrStop() { //์ง์ง„์ธ์ง€ ๋ฉˆ์ถค์ธ์ง€ ํŒ๋‹จ + for (int i = 0; i < car.getTryNumber(); i++) { + if (judgeadvanceOrStopNumber() >= CAR_ADVANCE_NUMBER){ + Move(); + } + printCarList(); + /* + pobi : + hol : + mol : + */ } } - - private int judgeadvanceOrStopNumber() { //์ „์ง„ํ•˜๋Š” ๋ฉ”์†Œ๋“œ, ์ถœ๋ ฅ + private int judgeadvanceOrStopNumber() { //1๋ถ€ํ„ฐ 9๊นŒ์ง€ ๋žœ๋คํ•œ ์ˆ˜ ๊ตฌํ•˜๊ธฐ return Randoms.pickNumberInRange(MIN_RANDOM_NUMBER, MAX_RANDOM_NUMBER); } - private void Move() { for (int i = 0; i < car.carList.length; i++) { car.carList[i] = car.carList[i].concat(HYPHEN); } } + + private void printCarList() { + for (int i = 0; i < car.getCarList().length; i++) { + System.out.println(car.carList[i] + ":"); + } + } } diff --git a/src/main/java/racingcar/View/OutputView.java b/src/main/java/racingcar/View/OutputView.java index 5d60b98afd4..357f1a4c5e8 100644 --- a/src/main/java/racingcar/View/OutputView.java +++ b/src/main/java/racingcar/View/OutputView.java @@ -1,12 +1,14 @@ package racingcar.View; -import racingcar.Service.UserInput; +import racingcar.Model.Car; +import racingcar.Service.UserInputCarName; +import racingcar.Service.UserInputTryNumber; public class OutputView { //์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ - UserInput userInput = new UserInput(); - public void printWinnerResult(int tryNumber) throws IllegalAccessException { - for (int i = 0; i < tryNumber; i++) { + UserInputTryNumber userInputTryNumber = new UserInputTryNumber(); + public void printWinnerResult() throws IllegalAccessException { + for (int i = 0; i < car.tryNumber; i++) { } System.out.println(); @@ -21,5 +23,5 @@ public static void printCarPosition(int carPosition) { - + } diff --git a/src/test/java/racingcar/Service/UserInputTest.java b/src/test/java/racingcar/Service/UserInputTest.java index 55f48a02d21..813a56c89e5 100644 --- a/src/test/java/racingcar/Service/UserInputTest.java +++ b/src/test/java/racingcar/Service/UserInputTest.java @@ -9,7 +9,7 @@ class UserInputTest { @Test void ์ž๋™์ฐจ_์ด๋ฆ„์—_๋Œ€ํ•œ_์˜ˆ์™ธ_์ถœ๋ ฅํ…Œ์ŠคํŠธ() { //when - UserInput userInput = new UserInput(); + UserInputCarName userInput = new UserInputCarName(); assertThatThrownBy(() -> { userInput.userInputCarName(); }) diff --git a/src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java b/src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java index 7e2e62969cf..2c5c9939859 100644 --- a/src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java +++ b/src/test/java/racingcar/Util/RandomAdvanceOrstopTest.java @@ -2,13 +2,13 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import racingcar.Model.Cars; +import racingcar.Model.Car; class RandomAdvanceOrstopTest { @DisplayName("๋žœ๋ค์ˆซ์ž๊ฐ€ 4์ด์ƒ์ผ ๋•Œ๋งŒ ์ „์ง„, ์•„๋‹ˆ๋ฉด ๋ฉˆ์ถค") @Test public void advanceOrStop() { - Cars car = new Cars(); + Car car = new Car(); assertFalse(car.);