From a1ed6818a91bebd380d5f2557db0560b83d487f1 Mon Sep 17 00:00:00 2001 From: Siul Date: Wed, 12 Feb 2025 18:11:54 +0900 Subject: [PATCH 1/8] =?UTF-8?q?Readme=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/README.md b/README.md index d0286c8..ad3c0ef 100644 --- a/README.md +++ b/README.md @@ -1 +1,35 @@ # java-racingcar-precourse + +## 과제 +### πŸš€ κΈ°λŠ₯ μš”κ΅¬ 사항 + +μ΄ˆκ°„λ‹¨ μžλ™μ°¨ κ²½μ£Ό κ²Œμž„μ„ κ΅¬ν˜„ν•œλ‹€. + +- μ£Όμ–΄μ§„ 횟수 λ™μ•ˆ nλŒ€μ˜ μžλ™μ°¨λŠ” μ „μ§„ λ˜λŠ” 멈좜 수 μžˆλ‹€. +- 각 μžλ™μ°¨μ— 이름을 λΆ€μ—¬ν•  수 μžˆλ‹€. μ „μ§„ν•˜λŠ” μžλ™μ°¨λ₯Ό 좜λ ₯ν•  λ•Œ μžλ™μ°¨ 이름을 같이 좜λ ₯ν•œλ‹€. +- μžλ™μ°¨ 이름은 μ‰Όν‘œ(,)λ₯Ό κΈ°μ€€μœΌλ‘œ κ΅¬λΆ„ν•˜λ©° 이름은 5자 μ΄ν•˜λ§Œ κ°€λŠ₯ν•˜λ‹€. +- μ‚¬μš©μžλŠ” λͺ‡ 번의 이동을 ν•  것인지λ₯Ό μž…λ ₯ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€. +- μ „μ§„ν•˜λŠ” 쑰건은 0μ—μ„œ 9 μ‚¬μ΄μ—μ„œ λ¬΄μž‘μœ„ 값을 κ΅¬ν•œ ν›„ λ¬΄μž‘μœ„ 값이 4 이상일 κ²½μš°μ΄λ‹€. +- μžλ™μ°¨ κ²½μ£Ό κ²Œμž„μ„ μ™„λ£Œν•œ ν›„ λˆ„κ°€ μš°μŠΉν–ˆλŠ”μ§€λ₯Ό μ•Œλ €μ€€λ‹€. μš°μŠΉμžλŠ” ν•œ λͺ… 이상일 수 μžˆλ‹€. +- μš°μŠΉμžκ°€ μ—¬λŸ¬ λͺ…일 경우 μ‰Όν‘œ(,)λ₯Ό μ΄μš©ν•˜μ—¬ κ΅¬λΆ„ν•œλ‹€. +- μ‚¬μš©μžκ°€ 잘λͺ»λœ 값을 μž…λ ₯ν•  경우 `IllegalArgumentException`을 λ°œμƒμ‹œν‚¨ ν›„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ’…λ£Œλ˜μ–΄μ•Ό ν•œλ‹€. + +## μž…μΆœλ ₯ +### μž…λ ₯ +- μžλ™μ°¨ 이름 μ‰Όν‘œ κΈ°μ€€μœΌλ‘œ μž…λ ₯λ°›κΈ° +- μ‹œλ„ν•  횟수 + +### 좜λ ₯ +- μ°¨μˆ˜λ³„ μ‹€ν–‰κ²°κ³Ό +- 단독, 곡동 우승자 μ•ˆλ‚΄ 문ꡬ + +## Business Logic +- μžλ™μ°¨ 이름과 μ‹œλ„ν•  횟수 μž…λ ₯λ°›κΈ° +- μ „μ§„ν•˜λŠ” 둜직짜기 +- 우승자 λ„μΆœ + +## κ΅¬ν˜„ν•  κΈ°λŠ₯ +- μž…μΆœλ ₯ +- μ „μ§„ 쑰건 κ΅¬ν˜„ +- 우승자 계산 κΈ°λŠ₯ κ΅¬ν˜„ +- μ˜ˆμ™ΈμΌ€μ΄μŠ€ κ΅¬ν˜„ \ No newline at end of file From c71334a49766d8254e859759ce13c815d417ed16 Mon Sep 17 00:00:00 2001 From: Siul Date: Wed, 12 Feb 2025 23:33:42 +0900 Subject: [PATCH 2/8] =?UTF-8?q?Car.java=20=EB=AA=A8=EB=8D=B8=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradlew | 2 +- src/main/java/racingcar/AppConfig.java | 4 +++ .../racingcar/controller/HowIsWinner.java | 0 .../controller/racingCarController.java | 0 src/main/java/racingcar/model/Car.java | 29 +++++++++++++++++++ src/main/java/racingcar/view/input.java | 0 src/main/java/racingcar/view/output.java | 0 7 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/main/java/racingcar/AppConfig.java create mode 100644 src/main/java/racingcar/controller/HowIsWinner.java 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/view/input.java create mode 100644 src/main/java/racingcar/view/output.java diff --git a/gradlew b/gradlew index 1aa94a4..fbda984 100755 --- a/gradlew +++ b/gradlew @@ -230,7 +230,7 @@ fi # set -- "${ARGS[@]}" "$@" # # but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any +# post-process each arg (as a line of input.java to sed) to backslash-escape any # character that might be a shell metacharacter, then use eval to reverse # that process (while maintaining the separation between arguments), and wrap # the whole thing up as a single "set" statement. diff --git a/src/main/java/racingcar/AppConfig.java b/src/main/java/racingcar/AppConfig.java new file mode 100644 index 0000000..d71d934 --- /dev/null +++ b/src/main/java/racingcar/AppConfig.java @@ -0,0 +1,4 @@ +package racingcar; + +public class AppConfig { +} diff --git a/src/main/java/racingcar/controller/HowIsWinner.java b/src/main/java/racingcar/controller/HowIsWinner.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/racingcar/controller/racingCarController.java b/src/main/java/racingcar/controller/racingCarController.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/racingcar/model/Car.java b/src/main/java/racingcar/model/Car.java new file mode 100644 index 0000000..31347fc --- /dev/null +++ b/src/main/java/racingcar/model/Car.java @@ -0,0 +1,29 @@ +package racingcar.model; + +import camp.nextstep.edu.missionutils.Randoms; + +public class Car{ + private int SpeedPerSecond; + private int score; + private String name; + private + + Car(String carName){ + SpeedPerSecond = Randoms.pickNumberInRange(0,9); + name = carName; + score = 0; + } + + public int getScore(){ + return score; + } + + public int getSpeedPerSecond(){ + return SpeedPerSecond; + } + + public String getName(){ + return name; + } + +} \ No newline at end of file diff --git a/src/main/java/racingcar/view/input.java b/src/main/java/racingcar/view/input.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/racingcar/view/output.java b/src/main/java/racingcar/view/output.java new file mode 100644 index 0000000..e69de29 From f56d15e3e251c29530682d5cb4d1dee588ff19d9 Mon Sep 17 00:00:00 2001 From: Siul Date: Wed, 12 Feb 2025 23:36:53 +0900 Subject: [PATCH 3/8] =?UTF-8?q?Car.java=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/model/Car.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/racingcar/model/Car.java b/src/main/java/racingcar/model/Car.java index 31347fc..00cbe2d 100644 --- a/src/main/java/racingcar/model/Car.java +++ b/src/main/java/racingcar/model/Car.java @@ -6,7 +6,6 @@ public class Car{ private int SpeedPerSecond; private int score; private String name; - private Car(String carName){ SpeedPerSecond = Randoms.pickNumberInRange(0,9); From 0a95881cbdfd48bd59218d3e6d4cdea4e576934d Mon Sep 17 00:00:00 2001 From: Siul Date: Fri, 14 Feb 2025 20:07:18 +0900 Subject: [PATCH 4/8] =?UTF-8?q?input=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../racingcar/controller/HowIsWinner.java | 0 .../controller/RacingCarController.java | 12 ++++++++ .../racingcar/controller/WhoIsWinner.java | 11 +++++++ .../controller/racingCarController.java | 0 src/main/java/racingcar/model/Car.java | 18 ++++------- src/main/java/racingcar/view/input.java | 30 +++++++++++++++++++ src/main/java/racingcar/view/output.java | 7 +++++ 7 files changed, 66 insertions(+), 12 deletions(-) delete mode 100644 src/main/java/racingcar/controller/HowIsWinner.java create mode 100644 src/main/java/racingcar/controller/RacingCarController.java create mode 100644 src/main/java/racingcar/controller/WhoIsWinner.java delete mode 100644 src/main/java/racingcar/controller/racingCarController.java diff --git a/src/main/java/racingcar/controller/HowIsWinner.java b/src/main/java/racingcar/controller/HowIsWinner.java deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/racingcar/controller/RacingCarController.java b/src/main/java/racingcar/controller/RacingCarController.java new file mode 100644 index 0000000..3929dd3 --- /dev/null +++ b/src/main/java/racingcar/controller/RacingCarController.java @@ -0,0 +1,12 @@ +package racingcar.controller; + +import racingcar.view.input; +import racingcar.model.Car; + +public class RacingCarController{ + + + public void ControlCarDistance() { + + } +} \ No newline at end of file diff --git a/src/main/java/racingcar/controller/WhoIsWinner.java b/src/main/java/racingcar/controller/WhoIsWinner.java new file mode 100644 index 0000000..1f8a278 --- /dev/null +++ b/src/main/java/racingcar/controller/WhoIsWinner.java @@ -0,0 +1,11 @@ +package racingcar.controller; + +import racingcar.model.Car; + +public class WhoIsWinner{ + Car winner; + + public Car JudgeWinner(){ + + } +} \ No newline at end of file diff --git a/src/main/java/racingcar/controller/racingCarController.java b/src/main/java/racingcar/controller/racingCarController.java deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/racingcar/model/Car.java b/src/main/java/racingcar/model/Car.java index 00cbe2d..6dd7eeb 100644 --- a/src/main/java/racingcar/model/Car.java +++ b/src/main/java/racingcar/model/Car.java @@ -3,26 +3,20 @@ import camp.nextstep.edu.missionutils.Randoms; public class Car{ - private int SpeedPerSecond; - private int score; - private String name; + private int Distance; + private String Name; Car(String carName){ - SpeedPerSecond = Randoms.pickNumberInRange(0,9); - name = carName; - score = 0; + Name = carName; + Distance = 0; } public int getScore(){ - return score; - } - - public int getSpeedPerSecond(){ - return SpeedPerSecond; + return Distance; } public String getName(){ - return name; + return Name; } } \ No newline at end of file diff --git a/src/main/java/racingcar/view/input.java b/src/main/java/racingcar/view/input.java index e69de29..0cbdc27 100644 --- a/src/main/java/racingcar/view/input.java +++ b/src/main/java/racingcar/view/input.java @@ -0,0 +1,30 @@ +package racingcar.view; + +import racingcar.model.Car; +import java.util.StringTokenizer; +import camp.nextstep.edu.missionutils.Console; + +import java.util.List; +import java.util.ArrayList; + +public class input{ + private int trial; + private ArrayList Cars = new ArrayList<>(); + + + public void getCarName() { + String CarNames = Console.readLine(); + StringTokenizer separatedCarNames = new StringTokenizer(CarNames, ","); + + while(separatedCarNames.hasMoreTokens()){ + Cars.add(separatedCarNames.nextToken().trim()); + } + } + + public void setTrial(){ + trial = Integer.parseInt(Console.readLine()); + } + public int getTrial(){ + return trial; + } +} diff --git a/src/main/java/racingcar/view/output.java b/src/main/java/racingcar/view/output.java index e69de29..199df5b 100644 --- a/src/main/java/racingcar/view/output.java +++ b/src/main/java/racingcar/view/output.java @@ -0,0 +1,7 @@ +package racingcar.view; + +import racingcar.view.output; + +public class output{ + +} \ No newline at end of file From a97fcf9e3b31ee0619b58f5ef9a15b71fc29ca5b Mon Sep 17 00:00:00 2001 From: Siul Date: Fri, 14 Feb 2025 21:12:28 +0900 Subject: [PATCH 5/8] RacingCarController --- src/main/java/racingcar/Application.java | 1 + .../controller/RacingCarController.java | 21 +++++++++++++++++-- .../racingcar/controller/WhoIsWinner.java | 2 +- src/main/java/racingcar/model/Car.java | 10 ++++----- src/main/java/racingcar/view/input.java | 12 +++++++---- src/main/java/racingcar/view/output.java | 8 ++++++- 6 files changed, 40 insertions(+), 14 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e..3e438a4 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -3,5 +3,6 @@ public class Application { public static void main(String[] args) { // TODO: ν”„λ‘œκ·Έλž¨ κ΅¬ν˜„ + } } diff --git a/src/main/java/racingcar/controller/RacingCarController.java b/src/main/java/racingcar/controller/RacingCarController.java index 3929dd3..8f427c8 100644 --- a/src/main/java/racingcar/controller/RacingCarController.java +++ b/src/main/java/racingcar/controller/RacingCarController.java @@ -1,12 +1,29 @@ package racingcar.controller; -import racingcar.view.input; +import camp.nextstep.edu.missionutils.Randoms; + +import racingcar.view.*; import racingcar.model.Car; public class RacingCarController{ + int numbersOfCar = input.Cars.size(); + Car[] car = new Car[numbersOfCar]; + public void setCarName(){ + for (int i = 0; i < numbersOfCar; i++){ + car[i].setName(input.Cars.get(i)); + car[i].Distance = 0; + } + } - public void ControlCarDistance() { + public void RacingGame() { + for (int k = 0; k < input.getTrial(); k++) + for (int i = 0; i < numbersOfCar; i++) { + int randomDistance = Randoms.pickNumberInRange(0, 9); + car[i].Distance += randomDistance; + } + output.displayPresentSituation(); + } } } \ No newline at end of file diff --git a/src/main/java/racingcar/controller/WhoIsWinner.java b/src/main/java/racingcar/controller/WhoIsWinner.java index 1f8a278..2c24825 100644 --- a/src/main/java/racingcar/controller/WhoIsWinner.java +++ b/src/main/java/racingcar/controller/WhoIsWinner.java @@ -1,7 +1,7 @@ package racingcar.controller; import racingcar.model.Car; - +import racingcar.controller.RacingCarController; public class WhoIsWinner{ Car winner; diff --git a/src/main/java/racingcar/model/Car.java b/src/main/java/racingcar/model/Car.java index 6dd7eeb..f45e3d0 100644 --- a/src/main/java/racingcar/model/Car.java +++ b/src/main/java/racingcar/model/Car.java @@ -3,20 +3,18 @@ import camp.nextstep.edu.missionutils.Randoms; public class Car{ - private int Distance; + public int Distance; private String Name; - Car(String carName){ + public Car(String carName){ Name = carName; Distance = 0; } - public int getScore(){ - return Distance; - } + public String getName(){ return Name; } - + public void setName(String name){Name = name;} } \ No newline at end of file diff --git a/src/main/java/racingcar/view/input.java b/src/main/java/racingcar/view/input.java index 0cbdc27..bebfe86 100644 --- a/src/main/java/racingcar/view/input.java +++ b/src/main/java/racingcar/view/input.java @@ -2,14 +2,16 @@ import racingcar.model.Car; import java.util.StringTokenizer; + import camp.nextstep.edu.missionutils.Console; import java.util.List; import java.util.ArrayList; +import racingcar.model.Car; public class input{ - private int trial; - private ArrayList Cars = new ArrayList<>(); + private static int trial; + public static ArrayList Cars = new ArrayList<>(); public void getCarName() { @@ -17,14 +19,16 @@ public void getCarName() { StringTokenizer separatedCarNames = new StringTokenizer(CarNames, ","); while(separatedCarNames.hasMoreTokens()){ - Cars.add(separatedCarNames.nextToken().trim()); + String oneOfCarName = separatedCarNames.nextToken().trim(); + Cars.add(oneOfCarName); } + } public void setTrial(){ trial = Integer.parseInt(Console.readLine()); } - public int getTrial(){ + public static int getTrial(){ return trial; } } diff --git a/src/main/java/racingcar/view/output.java b/src/main/java/racingcar/view/output.java index 199df5b..dd31b33 100644 --- a/src/main/java/racingcar/view/output.java +++ b/src/main/java/racingcar/view/output.java @@ -1,7 +1,13 @@ package racingcar.view; -import racingcar.view.output; +import racingcar.view.input; +import racingcar.controller.WhoIsWinner; +import racingcar.model.Car; public class output{ + + public static void displayPresentSituation(){ + + } } \ No newline at end of file From e0dd7d39228325f42f75f9295b26fbd1b83bb30a Mon Sep 17 00:00:00 2001 From: Siul Date: Fri, 14 Feb 2025 22:08:21 +0900 Subject: [PATCH 6/8] =?UTF-8?q?WhoIsWinner.java=20=EC=A0=9C=EC=9E=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RacingCarController.java | 6 +++--- .../racingcar/controller/WhoIsWinner.java | 19 +++++++++++++++++-- src/main/java/racingcar/view/input.java | 1 + src/main/java/racingcar/view/output.java | 1 - 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main/java/racingcar/controller/RacingCarController.java b/src/main/java/racingcar/controller/RacingCarController.java index 8f427c8..94a40ee 100644 --- a/src/main/java/racingcar/controller/RacingCarController.java +++ b/src/main/java/racingcar/controller/RacingCarController.java @@ -6,8 +6,8 @@ import racingcar.model.Car; public class RacingCarController{ - int numbersOfCar = input.Cars.size(); - Car[] car = new Car[numbersOfCar]; + public static int numbersOfCar = input.Cars.size(); + public static Car[] car = new Car[numbersOfCar]; public void setCarName(){ for (int i = 0; i < numbersOfCar; i++){ @@ -21,8 +21,8 @@ public void RacingGame() { for (int i = 0; i < numbersOfCar; i++) { int randomDistance = Randoms.pickNumberInRange(0, 9); car[i].Distance += randomDistance; - } + output.displayPresentSituation(); } } diff --git a/src/main/java/racingcar/controller/WhoIsWinner.java b/src/main/java/racingcar/controller/WhoIsWinner.java index 2c24825..2d8a468 100644 --- a/src/main/java/racingcar/controller/WhoIsWinner.java +++ b/src/main/java/racingcar/controller/WhoIsWinner.java @@ -2,10 +2,25 @@ import racingcar.model.Car; import racingcar.controller.RacingCarController; +import java.util.List; +import java.util.ArrayList; + public class WhoIsWinner{ - Car winner; + List winner= new ArrayList<>(); + + public void JudgeWinner(){ + int maxDistance = 0; - public Car JudgeWinner(){ + for (int i = 0; i < RacingCarController.numbersOfCar; i++){ + if (RacingCarController.car[i].Distance > maxDistance){ + maxDistance = RacingCarController.car[i].Distance; + } + } + for (int i = 0; i < RacingCarController.numbersOfCar; i++){ + if (RacingCarController.car[i].Distance == maxDistance){ + winner.add(RacingCarController.car[i].getName()); + } + } } } \ No newline at end of file diff --git a/src/main/java/racingcar/view/input.java b/src/main/java/racingcar/view/input.java index bebfe86..08a5426 100644 --- a/src/main/java/racingcar/view/input.java +++ b/src/main/java/racingcar/view/input.java @@ -28,6 +28,7 @@ public void getCarName() { public void setTrial(){ trial = Integer.parseInt(Console.readLine()); } + public static int getTrial(){ return trial; } diff --git a/src/main/java/racingcar/view/output.java b/src/main/java/racingcar/view/output.java index dd31b33..1a6116f 100644 --- a/src/main/java/racingcar/view/output.java +++ b/src/main/java/racingcar/view/output.java @@ -6,7 +6,6 @@ public class output{ - public static void displayPresentSituation(){ } From 66addf57cf61ae2b42de45fec873c39951f46236 Mon Sep 17 00:00:00 2001 From: Siul Date: Fri, 14 Feb 2025 23:23:52 +0900 Subject: [PATCH 7/8] =?UTF-8?q?output=20=EB=B0=8F=20=EB=A7=88=EB=AC=B4?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/Application.java | 10 ++++++ .../controller/RacingCarController.java | 35 +++++++++++++++---- .../racingcar/controller/WhoIsWinner.java | 30 ++++++++++------ src/main/java/racingcar/view/input.java | 17 ++++----- src/main/java/racingcar/view/output.java | 11 +++--- 5 files changed, 72 insertions(+), 31 deletions(-) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index 3e438a4..e5938ab 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,8 +1,18 @@ package racingcar; +import racingcar.view.*; +import racingcar.controller.*; +import racingcar.model.*; + public class Application { public static void main(String[] args) { // TODO: ν”„λ‘œκ·Έλž¨ κ΅¬ν˜„ + + RacingCarController start = new RacingCarController(); + start.RacingGame(); + + WhoIsWinner w = new WhoIsWinner(); + w.JudgeWinner(start); } } diff --git a/src/main/java/racingcar/controller/RacingCarController.java b/src/main/java/racingcar/controller/RacingCarController.java index 94a40ee..84538c7 100644 --- a/src/main/java/racingcar/controller/RacingCarController.java +++ b/src/main/java/racingcar/controller/RacingCarController.java @@ -4,26 +4,49 @@ import racingcar.view.*; import racingcar.model.Car; +import java.util.ArrayList; public class RacingCarController{ - public static int numbersOfCar = input.Cars.size(); - public static Car[] car = new Car[numbersOfCar]; + public int numbersOfCar; + public Car[] car = new Car[numbersOfCar]; - public void setCarName(){ + public void setCar(ArrayList carName){ + numbersOfCar = carName.size(); for (int i = 0; i < numbersOfCar; i++){ - car[i].setName(input.Cars.get(i)); + car[i].setName(carName.get(i)); car[i].Distance = 0; } } + public int getNumbersOfCar(){ + return numbersOfCar; + } + public void RacingGame() { - for (int k = 0; k < input.getTrial(); k++) + output.CarNameRequestMessage(); + input userInput = new input(); + userInput.setCarName(); + + output.trialRequestMessage(); + userInput.setTrial(); + + setCar(userInput.getCarName()); + + for (int k = 0; k < userInput.getTrial(); k++){ for (int i = 0; i < numbersOfCar; i++) { int randomDistance = Randoms.pickNumberInRange(0, 9); car[i].Distance += randomDistance; } - output.displayPresentSituation(); + System.out.print(car[k].getName() + " : "); + for (int i = 0; i < car[i].Distance; i++){ + if (i != car[i].Distance){ + System.out.print("-"); + } + else { + System.out.println("-"); + } + } } } } \ No newline at end of file diff --git a/src/main/java/racingcar/controller/WhoIsWinner.java b/src/main/java/racingcar/controller/WhoIsWinner.java index 2d8a468..f59fe6f 100644 --- a/src/main/java/racingcar/controller/WhoIsWinner.java +++ b/src/main/java/racingcar/controller/WhoIsWinner.java @@ -1,25 +1,35 @@ package racingcar.controller; -import racingcar.model.Car; -import racingcar.controller.RacingCarController; import java.util.List; import java.util.ArrayList; public class WhoIsWinner{ - List winner= new ArrayList<>(); + public List winner= new ArrayList<>(); - public void JudgeWinner(){ + public void JudgeWinner(RacingCarController cars){ int maxDistance = 0; - for (int i = 0; i < RacingCarController.numbersOfCar; i++){ - if (RacingCarController.car[i].Distance > maxDistance){ - maxDistance = RacingCarController.car[i].Distance; + for (int i = 0; i < cars.getNumbersOfCar(); i++){ + if (cars.car[i].Distance > maxDistance){ + maxDistance = cars.car[i].Distance; } } - for (int i = 0; i < RacingCarController.numbersOfCar; i++){ - if (RacingCarController.car[i].Distance == maxDistance){ - winner.add(RacingCarController.car[i].getName()); + for (int i = 0; i < cars.getNumbersOfCar(); i++){ + if (cars.car[i].Distance == maxDistance){ + winner.add(cars.car[i].getName()); + } + } + + System.out.print("μ΅œμ’… 우승자 : "); + for (int i = 0; i < winner.size(); i++){ + if (i != winner.size()-1) { + System.out.print(winner.getFirst() + ","); + winner.removeFirst(); + } + else { + System.out.print(winner.getFirst()); + winner.removeFirst(); } } } diff --git a/src/main/java/racingcar/view/input.java b/src/main/java/racingcar/view/input.java index 08a5426..51c078b 100644 --- a/src/main/java/racingcar/view/input.java +++ b/src/main/java/racingcar/view/input.java @@ -1,20 +1,18 @@ package racingcar.view; -import racingcar.model.Car; import java.util.StringTokenizer; - import camp.nextstep.edu.missionutils.Console; - -import java.util.List; import java.util.ArrayList; -import racingcar.model.Car; public class input{ - private static int trial; - public static ArrayList Cars = new ArrayList<>(); + private int trial; + public ArrayList Cars = new ArrayList<>(); + public ArrayList getCarName(){ + return Cars; + } - public void getCarName() { + public void setCarName() { String CarNames = Console.readLine(); StringTokenizer separatedCarNames = new StringTokenizer(CarNames, ","); @@ -22,14 +20,13 @@ public void getCarName() { String oneOfCarName = separatedCarNames.nextToken().trim(); Cars.add(oneOfCarName); } - } public void setTrial(){ trial = Integer.parseInt(Console.readLine()); } - public static int getTrial(){ + public int getTrial(){ return trial; } } diff --git a/src/main/java/racingcar/view/output.java b/src/main/java/racingcar/view/output.java index 1a6116f..b430ecf 100644 --- a/src/main/java/racingcar/view/output.java +++ b/src/main/java/racingcar/view/output.java @@ -1,12 +1,13 @@ package racingcar.view; -import racingcar.view.input; -import racingcar.controller.WhoIsWinner; -import racingcar.model.Car; - public class output{ - public static void displayPresentSituation(){ + public static void CarNameRequestMessage(){ + System.out.println("κ²½μ£Όν•  μžλ™μ°¨ 이름을 μž…λ ₯ν•˜μ„Έμš”.(이름은 μ‰Όν‘œ(,) κΈ°μ€€μœΌλ‘œ ꡬ뢄)"); + } + public static void trialRequestMessage(){ + System.out.println("μ‹œλ„ν•  νšŒμˆ˜λŠ” λͺ‡νšŒμΈκ°€μš”?"); } + } \ No newline at end of file From 8cf52858abdb942580299d6b6d064d7fd5ae70e4 Mon Sep 17 00:00:00 2001 From: Siul Date: Fri, 14 Feb 2025 23:42:45 +0900 Subject: [PATCH 8/8] the end --- src/main/java/racingcar/AppConfig.java | 4 ---- src/main/java/racingcar/Application.java | 4 ++-- .../racingcar/controller/RacingCarController.java | 2 +- src/main/java/racingcar/view/input.java | 12 ++++++++++-- 4 files changed, 13 insertions(+), 9 deletions(-) delete mode 100644 src/main/java/racingcar/AppConfig.java diff --git a/src/main/java/racingcar/AppConfig.java b/src/main/java/racingcar/AppConfig.java deleted file mode 100644 index d71d934..0000000 --- a/src/main/java/racingcar/AppConfig.java +++ /dev/null @@ -1,4 +0,0 @@ -package racingcar; - -public class AppConfig { -} diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index e5938ab..eb52f00 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,8 +1,8 @@ package racingcar; -import racingcar.view.*; + import racingcar.controller.*; -import racingcar.model.*; + public class Application { public static void main(String[] args) { diff --git a/src/main/java/racingcar/controller/RacingCarController.java b/src/main/java/racingcar/controller/RacingCarController.java index 84538c7..1d604bf 100644 --- a/src/main/java/racingcar/controller/RacingCarController.java +++ b/src/main/java/racingcar/controller/RacingCarController.java @@ -7,7 +7,7 @@ import java.util.ArrayList; public class RacingCarController{ - public int numbersOfCar; + public int numbersOfCar = 1; public Car[] car = new Car[numbersOfCar]; public void setCar(ArrayList carName){ diff --git a/src/main/java/racingcar/view/input.java b/src/main/java/racingcar/view/input.java index 51c078b..9d18d23 100644 --- a/src/main/java/racingcar/view/input.java +++ b/src/main/java/racingcar/view/input.java @@ -8,6 +8,9 @@ public class input{ private int trial; public ArrayList Cars = new ArrayList<>(); + public input(){ + trial = 0; + } public ArrayList getCarName(){ return Cars; } @@ -17,8 +20,13 @@ public void setCarName() { StringTokenizer separatedCarNames = new StringTokenizer(CarNames, ","); while(separatedCarNames.hasMoreTokens()){ - String oneOfCarName = separatedCarNames.nextToken().trim(); - Cars.add(oneOfCarName); + if (separatedCarNames.nextToken().trim().length() < 5) { + String oneOfCarName = separatedCarNames.nextToken().trim(); + Cars.add(oneOfCarName); + } + else { + throw new IllegalArgumentException("λ‹€μ„― κΈ€μžκ°€ λ„˜μ–΄μš”"); + } } }