From 363791fb1236d5cb594b31d3c1d52012ec5aa67c Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Sun, 24 Mar 2024 02:56:35 +0900 Subject: [PATCH 01/21] init --- README.md | 4 ++++ src/main/java/RacingMain.java | 13 +++++++++++-- src/main/java/domain/RacingGame.java | 19 +++++++++++++++++++ src/main/java/view/InputView.java | 13 +++++++++++++ src/main/java/view/ResultView.java | 9 +++++++++ 5 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/main/java/domain/RacingGame.java create mode 100644 src/main/java/view/InputView.java create mode 100644 src/main/java/view/ResultView.java diff --git a/README.md b/README.md index 1969313..991c031 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,7 @@ 자동차 경주 미션 저장소 +//경주할 자동차 이름 입력받기 +//시도할 횟수 입력 받기 +//경주 진행하기 +//실행결과 출력하기 diff --git a/src/main/java/RacingMain.java b/src/main/java/RacingMain.java index 4394287..c933e00 100644 --- a/src/main/java/RacingMain.java +++ b/src/main/java/RacingMain.java @@ -1,7 +1,16 @@ -public class RacingMain { +import view.InputView; +import view.ResultView; +import domain.RacingGame; +public class RacingMain { public static void main(String[] args) { // TODO: MVC 패턴을 기반으로 자동차 경주 미션 구현해보기 - System.out.println("Hello, World!"); + final var carNames = InputView.getCarNames(); + final var tryCount = InputView.getTryCount(); + + final var racingGame = new RacingGame(carNames, tryCount); + racingGame.race(); + + ResultView.printWinners(racingGame.getWinners()); } } diff --git a/src/main/java/domain/RacingGame.java b/src/main/java/domain/RacingGame.java new file mode 100644 index 0000000..30c744e --- /dev/null +++ b/src/main/java/domain/RacingGame.java @@ -0,0 +1,19 @@ +package domain; + +import java.util.*; + +public class RacingGame { + + + public RacingGame(Map carNames, int tryCount){ + + } + + public void race(){ + + } + + public void getWinners(){ + + } +} diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java new file mode 100644 index 0000000..f1b8bc7 --- /dev/null +++ b/src/main/java/view/InputView.java @@ -0,0 +1,13 @@ +package view; + +import java.util.*; + +public class InputView { + public static Map getCarNames(){ + + } + + public static int getTryCount(){ + + } +} diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java new file mode 100644 index 0000000..e9adc41 --- /dev/null +++ b/src/main/java/view/ResultView.java @@ -0,0 +1,9 @@ +package view; + +public class ResultView { + public static void printWinners(){ + + } + + +} From 0a2264b61c15793f854f0f584ec7aea72ee858d8 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Sun, 24 Mar 2024 02:59:13 +0900 Subject: [PATCH 02/21] =?UTF-8?q?docs(docs/README.md)=20:=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=ED=95=A0=20=EA=B8=B0=EB=8A=A5=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EB=AC=B8=EC=84=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 991c031..d9e62c2 100644 --- a/README.md +++ b/README.md @@ -4,5 +4,5 @@ //경주할 자동차 이름 입력받기 //시도할 횟수 입력 받기 -//경주 진행하기 -//실행결과 출력하기 +//경주 진행하기 +//우승자 출력하기 From 44ea420eac3f9b81181cf928732a99c6f2166157 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Mon, 25 Mar 2024 11:43:15 +0900 Subject: [PATCH 03/21] =?UTF-8?q?feat(getCarNames)=20:=20=20=EA=B2=BD?= =?UTF-8?q?=EC=A3=BC=20=EC=9E=90=EB=8F=99=EC=B0=A8=20=EC=9D=B4=EB=A6=84=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=20=EB=B0=9B=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/view/InputView.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index f1b8bc7..9744bbb 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -3,8 +3,17 @@ import java.util.*; public class InputView { - public static Map getCarNames(){ + private static Scanner scanner = new Scanner(System.in); + public static Map getCarNames(){ + Map cars = new HashMap<>(); + System.out.println("경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."); + String line = scanner.nextLine(); + String[] str = line.split(","); + for(int i = 0; i Date: Mon, 25 Mar 2024 11:45:28 +0900 Subject: [PATCH 04/21] =?UTF-8?q?feat(getTryCount)=20:=20=EC=8B=9C?= =?UTF-8?q?=EB=8F=84=20=ED=9A=9F=EC=88=98=20=EC=9E=85=EB=A0=A5=EB=B0=9B?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/view/InputView.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index 9744bbb..683381a 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -17,6 +17,9 @@ public static Map getCarNames(){ } public static int getTryCount(){ - + System.out.println("시도할 횟수는 몇회인가요?"); + int count = scanner.nextInt(); + scanner.nextLine(); + return count; } } From 94a84d23f7cab0e3b3937bd822073a9208962e30 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Mon, 25 Mar 2024 11:48:23 +0900 Subject: [PATCH 05/21] =?UTF-8?q?feat(RacingGame)=20:=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=EC=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/domain/RacingGame.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/domain/RacingGame.java b/src/main/java/domain/RacingGame.java index 30c744e..6aae746 100644 --- a/src/main/java/domain/RacingGame.java +++ b/src/main/java/domain/RacingGame.java @@ -3,10 +3,12 @@ import java.util.*; public class RacingGame { - + private Map carNames; + private int tryCount; public RacingGame(Map carNames, int tryCount){ - + this.carNames = carNames; + this.tryCount = tryCount; } public void race(){ From 1899ff316abfc87dbe696d91f318cd07be3e9c66 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Tue, 26 Mar 2024 20:44:27 +0900 Subject: [PATCH 06/21] =?UTF-8?q?feat(tryCountValidate,=20carNamesValidate?= =?UTF-8?q?)=20:=20=EC=9E=85=EB=A0=A5=20=EB=B0=9B=EC=9D=80=20=EC=B0=A8=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=EA=B3=BC=20=EA=B2=BD=EA=B8=B0=20=ED=9A=9F?= =?UTF-8?q?=EC=88=98=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/RacingMain.java | 13 ++--- .../java/controller/RacingController.java | 55 +++++++++++++++++++ src/main/java/domain/RacingGame.java | 17 +++--- src/main/java/view/InputView.java | 4 +- src/main/java/view/ResultView.java | 4 +- 5 files changed, 74 insertions(+), 19 deletions(-) create mode 100644 src/main/java/controller/RacingController.java diff --git a/src/main/java/RacingMain.java b/src/main/java/RacingMain.java index c933e00..6ebe669 100644 --- a/src/main/java/RacingMain.java +++ b/src/main/java/RacingMain.java @@ -1,16 +1,11 @@ -import view.InputView; -import view.ResultView; +import controller.RacingController; import domain.RacingGame; public class RacingMain { public static void main(String[] args) { // TODO: MVC 패턴을 기반으로 자동차 경주 미션 구현해보기 - final var carNames = InputView.getCarNames(); - final var tryCount = InputView.getTryCount(); - - final var racingGame = new RacingGame(carNames, tryCount); - racingGame.race(); - - ResultView.printWinners(racingGame.getWinners()); + + final RacingController racingController = new RacingController(); + racingController.run(); } } diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java new file mode 100644 index 0000000..efb285b --- /dev/null +++ b/src/main/java/controller/RacingController.java @@ -0,0 +1,55 @@ +package controller; + +import domain.RacingGame; +import view.InputView; +import view.ResultView; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class RacingController { + public void run(){ + try{ + + final var cars = InputView.readCarNames(); + final var tryCount = InputView.readTryCount(); + tryCountValidate(tryCount); + carNamesValidate(cars); + + final var racingGame = new RacingGame(cars, tryCount); + race(); + + ResultView.printWinners(getWinners()); + + }catch(IllegalArgumentException e){ + System.out.println(e.getMessage()); + } + } + private void race(){ + + } + + private List getWinners(){ + + } + + private void tryCountValidate(int count){ + if(count <= 0) + throw new IllegalArgumentException("[ERROR]시도 횟수는 양수입니다."); + } + private void carNamesValidate(Map cars){ + Iterator keys = cars.keySet().iterator(); + while(keys.hasNext()){ + String key = keys.next(); + lengthValidate(key); + } + + } + + private void lengthValidate(String name){ + if(name.length() > 5) + throw new IllegalArgumentException("[ERROR]차 이름은 5자 이하여야합 니다."); + } + +} diff --git a/src/main/java/domain/RacingGame.java b/src/main/java/domain/RacingGame.java index 6aae746..d2b4332 100644 --- a/src/main/java/domain/RacingGame.java +++ b/src/main/java/domain/RacingGame.java @@ -3,19 +3,22 @@ import java.util.*; public class RacingGame { - private Map carNames; + private Map cars; private int tryCount; - public RacingGame(Map carNames, int tryCount){ - this.carNames = carNames; + public RacingGame(){ + + } + public RacingGame(Map cars, int tryCount){ + this.cars = cars; this.tryCount = tryCount; } - public void race(){ - + public Map getCars() { + return cars; } - public void getWinners(){ - + public int getTryCount() { + return tryCount; } } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index 683381a..b9887a0 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -5,7 +5,7 @@ public class InputView { private static Scanner scanner = new Scanner(System.in); - public static Map getCarNames(){ + public static Map readCarNames(){ Map cars = new HashMap<>(); System.out.println("경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."); String line = scanner.nextLine(); @@ -16,7 +16,7 @@ public static Map getCarNames(){ return cars; } - public static int getTryCount(){ + public static int readTryCount(){ System.out.println("시도할 횟수는 몇회인가요?"); int count = scanner.nextInt(); scanner.nextLine(); diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index e9adc41..907bf7f 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -1,7 +1,9 @@ package view; +import java.util.List; + public class ResultView { - public static void printWinners(){ + public static void printWinners(List winners){ } From 0cccb3dede03b0564973c6d73e920a84e187b2aa Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Tue, 26 Mar 2024 21:02:14 +0900 Subject: [PATCH 07/21] =?UTF-8?q?refactor(tryCountValidate,=20carNamesVali?= =?UTF-8?q?date)=20:=20InputView=20=ED=81=B4=EB=9E=98=EC=8A=A4=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/RacingController.java | 26 +++---------------- src/main/java/view/InputView.java | 19 ++++++++++++++ 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index efb285b..453366f 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -14,11 +14,11 @@ public void run(){ final var cars = InputView.readCarNames(); final var tryCount = InputView.readTryCount(); - tryCountValidate(tryCount); - carNamesValidate(cars); + InputView.carNamesValidate(cars); + InputView.tryCountValidate(tryCount); final var racingGame = new RacingGame(cars, tryCount); - race(); + race(racingGame); ResultView.printWinners(getWinners()); @@ -26,7 +26,7 @@ public void run(){ System.out.println(e.getMessage()); } } - private void race(){ + private void race(RacingGame racingGame){ } @@ -34,22 +34,4 @@ private List getWinners(){ } - private void tryCountValidate(int count){ - if(count <= 0) - throw new IllegalArgumentException("[ERROR]시도 횟수는 양수입니다."); - } - private void carNamesValidate(Map cars){ - Iterator keys = cars.keySet().iterator(); - while(keys.hasNext()){ - String key = keys.next(); - lengthValidate(key); - } - - } - - private void lengthValidate(String name){ - if(name.length() > 5) - throw new IllegalArgumentException("[ERROR]차 이름은 5자 이하여야합 니다."); - } - } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index b9887a0..9902a95 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -22,4 +22,23 @@ public static int readTryCount(){ scanner.nextLine(); return count; } + + public static void tryCountValidate(int count){ + if(count <= 0) + throw new IllegalArgumentException("[ERROR]시도 횟수는 양수입니다."); + } + public static void carNamesValidate(Map cars){ + Iterator keys = cars.keySet().iterator(); + while(keys.hasNext()){ + String key = keys.next(); + lengthValidate(key); + } + + } + + private static void lengthValidate(String name){ + if(name.length() > 5) + throw new IllegalArgumentException("[ERROR]차 이름은 5자 이하여야합 니다."); + } + } From f0b640b46a3e499c1b9449e5e1032cfe346c1f0e Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 00:27:07 +0900 Subject: [PATCH 08/21] =?UTF-8?q?feat(printRaceStep,=20Start)=20:=20?= =?UTF-8?q?=EB=8B=A8=EA=B3=84=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=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/controller/RacingController.java | 6 ++++-- src/main/java/view/ResultView.java | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 453366f..0b0ca4a 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -6,7 +6,8 @@ import java.util.Iterator; import java.util.List; -import java.util.Map; +import java.util.Random; + public class RacingController { public void run(){ @@ -27,9 +28,10 @@ public void run(){ } } private void race(RacingGame racingGame){ - + ResultView.Start(racingGame.getCars()); } + private List getWinners(){ } diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index 907bf7f..09a3182 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -1,11 +1,27 @@ package view; +import java.util.Iterator; import java.util.List; +import java.util.Map; public class ResultView { public static void printWinners(List winners){ } + public static void printRaceStep(Map cars){ + Iterator iterator = cars.keySet().iterator(); + while(iterator.hasNext()){ + String name = iterator.next(); + String distance = "-".repeat(cars.get(name)); + System.out.println(name + " : " + distance); + } + } + public static void Start(Map cars){ + System.out.println("실행 결과"); + printRaceStep(cars); + } } + + From ddd9abe429c02894c5f8345dd7b221a9375e82b6 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 00:42:51 +0900 Subject: [PATCH 09/21] =?UTF-8?q?feat(race)=20:=20=EA=B2=BD=EA=B8=B0=20?= =?UTF-8?q?=EC=A7=84=ED=96=89=ED=95=98=EB=8A=94=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=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/controller/RacingController.java | 13 ++++++++++++- src/main/java/domain/RacingGame.java | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 0b0ca4a..0f8f651 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -29,8 +29,19 @@ public void run(){ } private void race(RacingGame racingGame){ ResultView.Start(racingGame.getCars()); - } + for(int i = 0; i < racingGame.getTryCount(); i++){ + Iterator iterator = racingGame.getCars().keySet().iterator(); + while(iterator.hasNext()){ + String name = iterator.next(); + Random random = new Random(); + int randomNumber = random.nextInt(10); + if(randomNumber >= 4){ + racingGame.updateDistance(name); + } + } + } + } private List getWinners(){ diff --git a/src/main/java/domain/RacingGame.java b/src/main/java/domain/RacingGame.java index d2b4332..71dfa65 100644 --- a/src/main/java/domain/RacingGame.java +++ b/src/main/java/domain/RacingGame.java @@ -14,6 +14,11 @@ public RacingGame(Map cars, int tryCount){ this.tryCount = tryCount; } + public void updateDistance(String carName){ + int distance = cars.get(carName) + 1; + this.cars.replace(carName, distance); + } + public Map getCars() { return cars; } From d6c6420b6d50b1226c9e47542762c7c771f1c4cf Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 00:53:47 +0900 Subject: [PATCH 10/21] refactor(race) --- .../java/controller/RacingController.java | 21 +++++++++++-------- src/main/java/domain/RacingGame.java | 10 +++++---- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 0f8f651..b8a6b71 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -6,6 +6,7 @@ import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Random; @@ -27,19 +28,21 @@ public void run(){ System.out.println(e.getMessage()); } } + private void race(RacingGame racingGame){ ResultView.Start(racingGame.getCars()); for(int i = 0; i < racingGame.getTryCount(); i++){ - Iterator iterator = racingGame.getCars().keySet().iterator(); - while(iterator.hasNext()){ - String name = iterator.next(); - Random random = new Random(); - int randomNumber = random.nextInt(10); - if(randomNumber >= 4){ - racingGame.updateDistance(name); - } - } + generateRandomDistance(racingGame.getCars()); + } + } + private void generateRandomDistance(Map cars){ + Iterator iterator = cars.keySet().iterator(); + while(iterator.hasNext()){ + String name = iterator.next(); + Random random = new Random(); + int randomNumber = random.nextInt(10); + RacingGame.updateDistance(name, randomNumber); } } diff --git a/src/main/java/domain/RacingGame.java b/src/main/java/domain/RacingGame.java index 71dfa65..aedbc36 100644 --- a/src/main/java/domain/RacingGame.java +++ b/src/main/java/domain/RacingGame.java @@ -3,7 +3,7 @@ import java.util.*; public class RacingGame { - private Map cars; + private static Map cars; private int tryCount; public RacingGame(){ @@ -14,9 +14,11 @@ public RacingGame(Map cars, int tryCount){ this.tryCount = tryCount; } - public void updateDistance(String carName){ - int distance = cars.get(carName) + 1; - this.cars.replace(carName, distance); + public static void updateDistance(String carName, int random){ + if(random >= 4) { + int distance = cars.get(carName) + 1; + cars.replace(carName, distance); + } } public Map getCars() { From d969f5fac060a59c19f22a93dbb7767cd9566055 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 01:09:05 +0900 Subject: [PATCH 11/21] =?UTF-8?q?feat(printWinners)=20:=20=EC=9A=B0?= =?UTF-8?q?=EC=8A=B9=EC=9E=90=20=EC=B6=9C=EB=A0=A5=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=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/controller/RacingController.java | 2 +- src/main/java/view/ResultView.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index b8a6b71..3a2d945 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -28,7 +28,7 @@ public void run(){ System.out.println(e.getMessage()); } } - + private void race(RacingGame racingGame){ ResultView.Start(racingGame.getCars()); for(int i = 0; i < racingGame.getTryCount(); i++){ diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index 09a3182..8f44625 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -6,7 +6,11 @@ public class ResultView { public static void printWinners(List winners){ - + int i; + for(i = 0; i < winners.size() - 1; i++){ + System.out.print(winners.get(i) + ", "); + } + System.out.print(winners.get(i) + "가 최종 우승했습니다."); } public static void printRaceStep(Map cars){ From 5ff3028fb9ddba4c2d3f35fa26de49044d4693d8 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 10:40:56 +0900 Subject: [PATCH 12/21] =?UTF-8?q?refactor(generateRandomDistance)=20:=20?= =?UTF-8?q?=EB=B0=98=EB=B3=B5=EB=AC=B8=20=EA=B5=AC=EC=A1=B0=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 --- .../java/controller/RacingController.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 3a2d945..453dd60 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -4,16 +4,12 @@ import view.InputView; import view.ResultView; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Random; +import java.util.*; public class RacingController { public void run(){ try{ - final var cars = InputView.readCarNames(); final var tryCount = InputView.readTryCount(); InputView.carNamesValidate(cars); @@ -22,7 +18,7 @@ public void run(){ final var racingGame = new RacingGame(cars, tryCount); race(racingGame); - ResultView.printWinners(getWinners()); + ResultView.printWinners(getWinners(racingGame.getCars())); }catch(IllegalArgumentException e){ System.out.println(e.getMessage()); @@ -37,17 +33,18 @@ private void race(RacingGame racingGame){ } private void generateRandomDistance(Map cars){ - Iterator iterator = cars.keySet().iterator(); - while(iterator.hasNext()){ - String name = iterator.next(); + for(Map.Entry entry : cars.entrySet()){ Random random = new Random(); - int randomNumber = random.nextInt(10); - RacingGame.updateDistance(name, randomNumber); + int randomNum = random.nextInt(10); + RacingGame.updateDistance(entry.getKey(), randomNum); } } - private List getWinners(){ + private List getWinners(Map cars){ + List winners = new ArrayList<>(); + + return winners; } } From 3a0fc28b6f041df378bf434052768327fee87724 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 10:45:04 +0900 Subject: [PATCH 13/21] =?UTF-8?q?refactor(printRaceStep)=20:=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/controller/RacingController.java | 1 - src/main/java/view/ResultView.java | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 453dd60..87a1722 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -31,7 +31,6 @@ private void race(RacingGame racingGame){ generateRandomDistance(racingGame.getCars()); } } - private void generateRandomDistance(Map cars){ for(Map.Entry entry : cars.entrySet()){ Random random = new Random(); diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index 8f44625..23f6de9 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -14,9 +14,8 @@ public static void printWinners(List winners){ } public static void printRaceStep(Map cars){ - Iterator iterator = cars.keySet().iterator(); - while(iterator.hasNext()){ - String name = iterator.next(); + for(Map.Entry entry : cars.entrySet()){ + String name = entry.getKey(); String distance = "-".repeat(cars.get(name)); System.out.println(name + " : " + distance); } From 80042f8fb5eb70196ed469c3496cd9d872e3553d Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 11:06:26 +0900 Subject: [PATCH 14/21] =?UTF-8?q?feat(getWinners)=20:=20=EC=9A=B0=EC=8A=B9?= =?UTF-8?q?=EC=9E=90=20=EA=B5=AC=ED=95=98=EB=8A=94=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=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/controller/RacingController.java | 9 ++++++--- src/main/java/view/ResultView.java | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 87a1722..67c9c01 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -41,9 +41,12 @@ private void generateRandomDistance(Map cars){ private List getWinners(Map cars){ List winners = new ArrayList<>(); - - + int maxValue = Collections.max(cars.values()); + for(Map.Entry entry : cars.entrySet()){ + if(entry.getValue() == maxValue){ + winners.add(entry.getKey()); + } + } return winners; } - } diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index 23f6de9..78c435e 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -3,12 +3,13 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; public class ResultView { public static void printWinners(List winners){ int i; for(i = 0; i < winners.size() - 1; i++){ - System.out.print(winners.get(i) + ", "); + System.out.print(winners.get(i)+ ", "); } System.out.print(winners.get(i) + "가 최종 우승했습니다."); } From 5a9fab3e1450040f99de0f62cdfedd45091d5170 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Wed, 27 Mar 2024 11:11:58 +0900 Subject: [PATCH 15/21] =?UTF-8?q?refactor(printRaceStep,=20start)=20:=20?= =?UTF-8?q?=EC=A0=91=EA=B7=BC=EC=A0=9C=ED=95=9C=EC=9E=90=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 --- src/main/java/controller/RacingController.java | 5 +++-- src/main/java/view/InputView.java | 1 - src/main/java/view/ResultView.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 67c9c01..3d96608 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -11,8 +11,8 @@ public class RacingController { public void run(){ try{ final var cars = InputView.readCarNames(); - final var tryCount = InputView.readTryCount(); InputView.carNamesValidate(cars); + final var tryCount = InputView.readTryCount(); InputView.tryCountValidate(tryCount); final var racingGame = new RacingGame(cars, tryCount); @@ -26,7 +26,8 @@ public void run(){ } private void race(RacingGame racingGame){ - ResultView.Start(racingGame.getCars()); + ResultView resultView = new ResultView(); + resultView.start(racingGame.getCars()); for(int i = 0; i < racingGame.getTryCount(); i++){ generateRandomDistance(racingGame.getCars()); } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index 9902a95..a67acb2 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -3,7 +3,6 @@ import java.util.*; public class InputView { - private static Scanner scanner = new Scanner(System.in); public static Map readCarNames(){ Map cars = new HashMap<>(); diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index 78c435e..7f79a82 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -14,7 +14,7 @@ public static void printWinners(List winners){ System.out.print(winners.get(i) + "가 최종 우승했습니다."); } - public static void printRaceStep(Map cars){ + private void printRaceStep(Map cars){ for(Map.Entry entry : cars.entrySet()){ String name = entry.getKey(); String distance = "-".repeat(cars.get(name)); @@ -22,7 +22,7 @@ public static void printRaceStep(Map cars){ } } - public static void Start(Map cars){ + public void start(Map cars){ System.out.println("실행 결과"); printRaceStep(cars); } From a575cd3248922b5ae8da495e13495997e931e3c4 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Thu, 28 Mar 2024 13:34:58 +0900 Subject: [PATCH 16/21] =?UTF-8?q?refactor(race)=20:=20=EB=8B=A8=EA=B3=84?= =?UTF-8?q?=20=EC=B6=9C=EB=A0=A5=20=ED=95=98=EB=8A=94=20=EB=B6=80=EB=B6=84?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/controller/RacingController.java | 1 + src/main/java/view/ResultView.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 3d96608..d57dd34 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -30,6 +30,7 @@ private void race(RacingGame racingGame){ resultView.start(racingGame.getCars()); for(int i = 0; i < racingGame.getTryCount(); i++){ generateRandomDistance(racingGame.getCars()); + resultView.printRaceStep(racingGame.getCars()); } } private void generateRandomDistance(Map cars){ diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index 7f79a82..87f7a32 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -14,7 +14,7 @@ public static void printWinners(List winners){ System.out.print(winners.get(i) + "가 최종 우승했습니다."); } - private void printRaceStep(Map cars){ + public void printRaceStep(Map cars){ for(Map.Entry entry : cars.entrySet()){ String name = entry.getKey(); String distance = "-".repeat(cars.get(name)); From 254f5b1e6be14cce4cb6ce6a57b45ae8d3deb7da Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Thu, 28 Mar 2024 13:40:52 +0900 Subject: [PATCH 17/21] =?UTF-8?q?refactor=20:=20=EC=B6=9C=EB=A0=A5=20?= =?UTF-8?q?=EA=B0=9C=ED=96=89=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/RacingController.java | 1 + src/main/java/view/InputView.java | 19 ++++++++++++------- src/main/java/view/ResultView.java | 1 + 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index d57dd34..1e22f55 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -31,6 +31,7 @@ private void race(RacingGame racingGame){ for(int i = 0; i < racingGame.getTryCount(); i++){ generateRandomDistance(racingGame.getCars()); resultView.printRaceStep(racingGame.getCars()); + System.out.println(); } } private void generateRandomDistance(Map cars){ diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index a67acb2..f25708e 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -5,14 +5,19 @@ public class InputView { private static Scanner scanner = new Scanner(System.in); public static Map readCarNames(){ - Map cars = new HashMap<>(); - System.out.println("경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."); - String line = scanner.nextLine(); - String[] str = line.split(","); - for(int i = 0; i cars = new HashMap<>(); + System.out.println("경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."); + String line = scanner.nextLine(); + String[] str = line.split(","); + for(int i = 0; i cars){ public void start(Map cars){ System.out.println("실행 결과"); printRaceStep(cars); + System.out.println(); } } From 6a840bbba8ec3abbe38fd8c273a8a4d4bfc9e61d Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Thu, 28 Mar 2024 13:48:40 +0900 Subject: [PATCH 18/21] =?UTF-8?q?docs=20:=20=EC=A3=BC=EC=84=9D=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/RacingMain.java | 2 -- .../java/controller/RacingController.java | 21 ++++++++++++------- src/main/java/domain/RacingGame.java | 1 + src/main/java/view/InputView.java | 6 ++++++ src/main/java/view/ResultView.java | 4 ++++ 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/java/RacingMain.java b/src/main/java/RacingMain.java index 6ebe669..6db9c8f 100644 --- a/src/main/java/RacingMain.java +++ b/src/main/java/RacingMain.java @@ -3,8 +3,6 @@ public class RacingMain { public static void main(String[] args) { - // TODO: MVC 패턴을 기반으로 자동차 경주 미션 구현해보기 - final RacingController racingController = new RacingController(); racingController.run(); } diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 1e22f55..9b91741 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -10,30 +10,35 @@ public class RacingController { public void run(){ try{ - final var cars = InputView.readCarNames(); - InputView.carNamesValidate(cars); - final var tryCount = InputView.readTryCount(); - InputView.tryCountValidate(tryCount); + final var cars = InputView.readCarNames(); //차이름 입력받기 + InputView.carNamesValidate(cars); //차 이름이 유효성 확인 + final var tryCount = InputView.readTryCount(); //시도 횟수 입력받기 + InputView.tryCountValidate(tryCount); //횟수 유효성 확인 final var racingGame = new RacingGame(cars, tryCount); - race(racingGame); + race(racingGame); //경주 실행 - ResultView.printWinners(getWinners(racingGame.getCars())); + ResultView.printWinners(getWinners(racingGame.getCars())); //우승자 출력 }catch(IllegalArgumentException e){ System.out.println(e.getMessage()); } } + + //경주 실행 private void race(RacingGame racingGame){ ResultView resultView = new ResultView(); resultView.start(racingGame.getCars()); + for(int i = 0; i < racingGame.getTryCount(); i++){ generateRandomDistance(racingGame.getCars()); resultView.printRaceStep(racingGame.getCars()); System.out.println(); } } + + //난수 생성 후 거리 업데이트 하는 메소드 private void generateRandomDistance(Map cars){ for(Map.Entry entry : cars.entrySet()){ Random random = new Random(); @@ -42,10 +47,12 @@ private void generateRandomDistance(Map cars){ } } + //우승자 구하는 메소드 private List getWinners(Map cars){ List winners = new ArrayList<>(); int maxValue = Collections.max(cars.values()); - for(Map.Entry entry : cars.entrySet()){ + + for(Map.Entry entry : cars.entrySet()){ //이거 메소드로 분리하는게 가독성이 더 떨어질듯? if(entry.getValue() == maxValue){ winners.add(entry.getKey()); } diff --git a/src/main/java/domain/RacingGame.java b/src/main/java/domain/RacingGame.java index aedbc36..51aa28b 100644 --- a/src/main/java/domain/RacingGame.java +++ b/src/main/java/domain/RacingGame.java @@ -14,6 +14,7 @@ public RacingGame(Map cars, int tryCount){ this.tryCount = tryCount; } + //자동차 distance 업데이트 메소드 public static void updateDistance(String carName, int random){ if(random >= 4) { int distance = cars.get(carName) + 1; diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index f25708e..b2ad46b 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -4,6 +4,8 @@ public class InputView { private static Scanner scanner = new Scanner(System.in); + + //차이름 입력 메소드 public static Map readCarNames(){ try{ Map cars = new HashMap<>(); @@ -20,6 +22,7 @@ public static Map readCarNames(){ } } + //시도횟수 입력 메소드 public static int readTryCount(){ System.out.println("시도할 횟수는 몇회인가요?"); int count = scanner.nextInt(); @@ -27,10 +30,13 @@ public static int readTryCount(){ return count; } + //시도횟수 유효성 검사 메소드 public static void tryCountValidate(int count){ if(count <= 0) throw new IllegalArgumentException("[ERROR]시도 횟수는 양수입니다."); } + + //차이름 유효성 검사 메소드 public static void carNamesValidate(Map cars){ Iterator keys = cars.keySet().iterator(); while(keys.hasNext()){ diff --git a/src/main/java/view/ResultView.java b/src/main/java/view/ResultView.java index 5f24926..22ef12e 100644 --- a/src/main/java/view/ResultView.java +++ b/src/main/java/view/ResultView.java @@ -6,6 +6,8 @@ import java.util.Set; public class ResultView { + + //우승자 출력 메소드 public static void printWinners(List winners){ int i; for(i = 0; i < winners.size() - 1; i++){ @@ -14,6 +16,7 @@ public static void printWinners(List winners){ System.out.print(winners.get(i) + "가 최종 우승했습니다."); } + //경주 단계 출력 메소드 public void printRaceStep(Map cars){ for(Map.Entry entry : cars.entrySet()){ String name = entry.getKey(); @@ -22,6 +25,7 @@ public void printRaceStep(Map cars){ } } + //경주 시작 출력 메소드 public void start(Map cars){ System.out.println("실행 결과"); printRaceStep(cars); From cd2fb7e682fd921212a0100c427826055eb2deaf Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Thu, 28 Mar 2024 16:25:30 +0900 Subject: [PATCH 19/21] =?UTF-8?q?test=20:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/RacingControllerTest.java | 4 ++++ src/test/java/domain/RacingGameTest.java | 4 ++++ src/test/java/view/InputViewTest.java | 4 ++++ src/test/java/view/ResultViewTest.java | 18 ++++++++++++++++++ 4 files changed, 30 insertions(+) create mode 100644 src/test/java/controller/RacingControllerTest.java create mode 100644 src/test/java/domain/RacingGameTest.java create mode 100644 src/test/java/view/InputViewTest.java create mode 100644 src/test/java/view/ResultViewTest.java diff --git a/src/test/java/controller/RacingControllerTest.java b/src/test/java/controller/RacingControllerTest.java new file mode 100644 index 0000000..39e8fe5 --- /dev/null +++ b/src/test/java/controller/RacingControllerTest.java @@ -0,0 +1,4 @@ +package controller; + +public class RacingControllerTest { +} diff --git a/src/test/java/domain/RacingGameTest.java b/src/test/java/domain/RacingGameTest.java new file mode 100644 index 0000000..8b71ded --- /dev/null +++ b/src/test/java/domain/RacingGameTest.java @@ -0,0 +1,4 @@ +package domain; + +public class RacingGameTest { +} diff --git a/src/test/java/view/InputViewTest.java b/src/test/java/view/InputViewTest.java new file mode 100644 index 0000000..c565b41 --- /dev/null +++ b/src/test/java/view/InputViewTest.java @@ -0,0 +1,4 @@ +package view; + +public class InputViewTest { +} diff --git a/src/test/java/view/ResultViewTest.java b/src/test/java/view/ResultViewTest.java new file mode 100644 index 0000000..1d34421 --- /dev/null +++ b/src/test/java/view/ResultViewTest.java @@ -0,0 +1,18 @@ +package view; + +import org.junit.jupiter.api.Test; +import org.assertj.*; + +public class ResultViewTest { + + @Test + void 기능_테스트(){ + //given + + //when + + //then + + + } +} From fe0f5e71c1f4f2354221d24fcd91243f959bbfec Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Thu, 28 Mar 2024 18:40:06 +0900 Subject: [PATCH 20/21] =?UTF-8?q?refactor(carNamesValidate,=20tryCountVali?= =?UTF-8?q?date)=20:=20=EC=9C=A0=ED=9A=A8=EC=84=B1=20=EA=B2=80=EC=82=AC=20?= =?UTF-8?q?=EB=8F=84=EB=A9=94=EC=9D=B8=EC=9C=BC=EB=A1=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/RacingController.java | 2 -- src/main/java/domain/RacingGame.java | 24 +++++++++++++++++++ src/main/java/view/InputView.java | 21 ---------------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index 9b91741..ee51739 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -11,9 +11,7 @@ public class RacingController { public void run(){ try{ final var cars = InputView.readCarNames(); //차이름 입력받기 - InputView.carNamesValidate(cars); //차 이름이 유효성 확인 final var tryCount = InputView.readTryCount(); //시도 횟수 입력받기 - InputView.tryCountValidate(tryCount); //횟수 유효성 확인 final var racingGame = new RacingGame(cars, tryCount); race(racingGame); //경주 실행 diff --git a/src/main/java/domain/RacingGame.java b/src/main/java/domain/RacingGame.java index 51aa28b..a2219df 100644 --- a/src/main/java/domain/RacingGame.java +++ b/src/main/java/domain/RacingGame.java @@ -10,6 +10,8 @@ public RacingGame(){ } public RacingGame(Map cars, int tryCount){ + carNamesValidate(cars); + tryCountValidate(tryCount); this.cars = cars; this.tryCount = tryCount; } @@ -29,4 +31,26 @@ public Map getCars() { public int getTryCount() { return tryCount; } + + public static void tryCountValidate(int count){ + if(count <= 0) + throw new IllegalArgumentException("[ERROR]시도 횟수는 양수입니다."); + } + + //차이름 유효성 검사 메소드 + public static void carNamesValidate(Map cars){ + Iterator keys = cars.keySet().iterator(); + while(keys.hasNext()){ + String key = keys.next(); + lengthValidate(key); + } + + } + + //차 길이 유효성 검사 메소드 + private static void lengthValidate(String name){ + if(name.length() > 5) + throw new IllegalArgumentException("[ERROR]차 이름은 5자 이하여야합 니다."); + } + } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index b2ad46b..3615e2f 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -30,25 +30,4 @@ public static int readTryCount(){ return count; } - //시도횟수 유효성 검사 메소드 - public static void tryCountValidate(int count){ - if(count <= 0) - throw new IllegalArgumentException("[ERROR]시도 횟수는 양수입니다."); - } - - //차이름 유효성 검사 메소드 - public static void carNamesValidate(Map cars){ - Iterator keys = cars.keySet().iterator(); - while(keys.hasNext()){ - String key = keys.next(); - lengthValidate(key); - } - - } - - private static void lengthValidate(String name){ - if(name.length() > 5) - throw new IllegalArgumentException("[ERROR]차 이름은 5자 이하여야합 니다."); - } - } From 64d31fc2147d961319669fde699892f250492422 Mon Sep 17 00:00:00 2001 From: nahyunKoo Date: Thu, 28 Mar 2024 18:44:03 +0900 Subject: [PATCH 21/21] =?UTF-8?q?refactor(generateRandomDistance)=20:=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/controller/RacingController.java | 11 ++--------- src/main/java/util/GenerateRandomDistance.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 src/main/java/util/GenerateRandomDistance.java diff --git a/src/main/java/controller/RacingController.java b/src/main/java/controller/RacingController.java index ee51739..1ad20ae 100644 --- a/src/main/java/controller/RacingController.java +++ b/src/main/java/controller/RacingController.java @@ -1,6 +1,7 @@ package controller; import domain.RacingGame; +import util.GenerateRandomDistance; import view.InputView; import view.ResultView; @@ -30,20 +31,12 @@ private void race(RacingGame racingGame){ resultView.start(racingGame.getCars()); for(int i = 0; i < racingGame.getTryCount(); i++){ - generateRandomDistance(racingGame.getCars()); + GenerateRandomDistance.generateRandomDistance(racingGame.getCars()); resultView.printRaceStep(racingGame.getCars()); System.out.println(); } } - //난수 생성 후 거리 업데이트 하는 메소드 - private void generateRandomDistance(Map cars){ - for(Map.Entry entry : cars.entrySet()){ - Random random = new Random(); - int randomNum = random.nextInt(10); - RacingGame.updateDistance(entry.getKey(), randomNum); - } - } //우승자 구하는 메소드 private List getWinners(Map cars){ diff --git a/src/main/java/util/GenerateRandomDistance.java b/src/main/java/util/GenerateRandomDistance.java new file mode 100644 index 0000000..2d29df3 --- /dev/null +++ b/src/main/java/util/GenerateRandomDistance.java @@ -0,0 +1,17 @@ +package util; + +import domain.RacingGame; + +import java.util.Map; +import java.util.Random; + +public class GenerateRandomDistance { + + public static void generateRandomDistance(Map cars){ + for(Map.Entry entry : cars.entrySet()){ + Random random = new Random(); + int randomNum = random.nextInt(10); + RacingGame.updateDistance(entry.getKey(), randomNum); + } + } +}