From 4ebe7267c7cda2f8d24057818d1349671d9616d3 Mon Sep 17 00:00:00 2001 From: sobaman Date: Sun, 27 Oct 2024 19:31:52 +0900 Subject: [PATCH 01/15] =?UTF-8?q?docs(readme):=20README.md=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EC=97=90=202=EC=A3=BC=EC=B0=A8=20=EA=B3=BC=EC=A0=9C?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=9C=20=EA=B0=9C=EA=B4=84=EA=B3=BC=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=EB=AA=A9=EB=A1=9D=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d0286c859f..b0fc807a2e 100644 --- a/README.md +++ b/README.md @@ -1 +1,34 @@ -# java-racingcar-precourse +![img.png](img.png) + +# 프리코스 2주차 과제 - 자동차 경주 + +--- + +> 우아한 테크코스 7기 프리코스 2주차 과제 자동차 경주를 구현한 저장소입니다. + + +![img_1.png](img_1.png) + + + +## 기능목록 + +--- + +### 입력된 자동차들을 등록 + +- Map 으로 자동차의 이름과 전진 횟수를 저장 +- 이름은 5자 이하로 제한 +- 자동차들은 쉼표로 구분 + +### 시도할 횟수를 입력받아 반복 처리 + +- 넘겨받은 횟수 만큼 반복 처리 +- 차수별로 실행 결과를 출력 + +### 전진 조건을 검증하는 로직 구현 +- 0,9 사이에서 무작위로 추출한 값이 4 이상이면 전진, 아니면 정지 + +### 모든 차수 완료 후 우승자 안내 문구 출력 +- 가장 많은 전진 횟수를 기록한 자동차를 반환 +- 공동 우승자일 경우도 처리 \ No newline at end of file From 5ac4dde4d2049b348ea6908bbf0e02d0e4352450 Mon Sep 17 00:00:00 2001 From: sobaman Date: Sun, 27 Oct 2024 19:33:02 +0900 Subject: [PATCH 02/15] =?UTF-8?q?docs(readme):=20README.md=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EC=97=90=20=EC=82=AC=EC=A7=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- img.png | Bin 0 -> 21716 bytes img_1.png | Bin 0 -> 86045 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 img.png create mode 100644 img_1.png diff --git a/img.png b/img.png new file mode 100644 index 0000000000000000000000000000000000000000..340acf063073da220033157f491812064fc66a21 GIT binary patch literal 21716 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

?Nqu{VZVU83 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 literal 0 HcmV?d00001 From 4756c39f9b63d04b30d925a14daca0fae8cdd29a Mon Sep 17 00:00:00 2001 From: sobaman Date: Sun, 27 Oct 2024 19:49:23 +0900 Subject: [PATCH 03/15] =?UTF-8?q?feat(racingCarLauncher):=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=EC=B0=A8=20=EC=9D=B4=EB=A6=84=EC=9D=84=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=20=EB=B0=9B=EC=95=84=20=EC=B2=98=EB=A6=AC=ED=95=98?= =?UTF-8?q?=EB=8A=94=20inputCars=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20-=20=EB=93=A4=EC=96=B4=EC=98=A8=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=EC=97=B4=EC=9D=84=20(,)=20=EC=89=BC=ED=91=9C=EB=A1=9C?= =?UTF-8?q?=20=EA=B5=AC=EB=B6=84=20-=20=EA=B0=81=20=EC=9E=90=EB=8F=99?= =?UTF-8?q?=EC=B0=A8=20=EC=9D=B4=EB=A6=84=EC=9D=98=20=EA=B8=B8=EC=9D=B4?= =?UTF-8?q?=EA=B0=80=205=EB=A5=BC=20=EB=84=98=EC=9D=84=20=EA=B2=BD?= =?UTF-8?q?=EC=9A=B0=20IllegalArgumentException=20=EB=B0=9C=EC=83=9D=20-?= =?UTF-8?q?=20=EC=9E=90=EB=8F=99=EC=B0=A8=20=EC=9D=B4=EB=A6=84=EC=9D=B4=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=EC=9D=BC=20=EA=B2=BD=EC=9A=B0=20IllegalArgum?= =?UTF-8?q?entException=20=EB=B0=9C=EC=83=9D=20-=20Map=20=EC=97=90=20?= =?UTF-8?q?=EA=B0=81=20=EC=9E=90=EB=8F=99=EC=B0=A8=EC=9D=98=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=EC=9D=84=20=EC=84=B8=ED=8C=85,=20=EC=A0=84=EC=A7=84?= =?UTF-8?q?=20=ED=9A=9F=EC=88=98=EB=A5=BC=200=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=84=B8=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/racingcar/racingCarLauncher.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/racingcar/racingCarLauncher.java diff --git a/src/main/java/racingcar/racingCarLauncher.java b/src/main/java/racingcar/racingCarLauncher.java new file mode 100644 index 0000000000..bdd18559ad --- /dev/null +++ b/src/main/java/racingcar/racingCarLauncher.java @@ -0,0 +1,34 @@ +package racingcar; + +import camp.nextstep.edu.missionutils.Console; +import org.assertj.core.data.Index; + +import java.util.HashMap; +import java.util.Map; + +public class racingCarLauncher { + + private Map recentRecord = new HashMap<>(); + public void start(){ + System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분"); + String cars = Console.readLine(); + inputCars(cars); + } + + private void inputCars(String cars) { + + String[] split = cars.split(","); + + for (String car : split) { + + if (car.length() > 5) { + throw new IllegalArgumentException("자동차의 이름은 5자 이하만 가능합니다."); + } + if(recentRecord.containsKey(car)){ + throw new IllegalArgumentException("자동차 이름은 중복이 안됩니다."); + } + recentRecord.put(car, recentRecord.getOrDefault(car, 0)); + } + } + +} From 7dc867d67ecc4cee95920dd1585f705d3c7c9783 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 15:59:48 +0900 Subject: [PATCH 04/15] =?UTF-8?q?refactoring(racingCarLauncher):=20Map=20?= =?UTF-8?q?=EC=9D=B8=EC=8A=A4=ED=84=B4=EC=8A=A4=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=EC=9D=84=20recentRecord=20=EC=97=90=EC=84=9C=20currentRecord?= =?UTF-8?q?=20=EB=A1=9C=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/racingcar/racingCarLauncher.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/racingcar/racingCarLauncher.java b/src/main/java/racingcar/racingCarLauncher.java index bdd18559ad..51f83eba8c 100644 --- a/src/main/java/racingcar/racingCarLauncher.java +++ b/src/main/java/racingcar/racingCarLauncher.java @@ -1,6 +1,7 @@ package racingcar; import camp.nextstep.edu.missionutils.Console; +import camp.nextstep.edu.missionutils.Randoms; import org.assertj.core.data.Index; import java.util.HashMap; @@ -8,11 +9,15 @@ public class racingCarLauncher { - private Map recentRecord = new HashMap<>(); - public void start(){ + private Map currentRecord = new HashMap<>(); + + public void start() { System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분"); String cars = Console.readLine(); inputCars(cars); + + System.out.println("시도할 횟수는 몇 회인가요?"); + String count = Console.readLine(); } private void inputCars(String cars) { @@ -24,11 +29,10 @@ private void inputCars(String cars) { if (car.length() > 5) { throw new IllegalArgumentException("자동차의 이름은 5자 이하만 가능합니다."); } - if(recentRecord.containsKey(car)){ + if (currentRecord.containsKey(car)) { throw new IllegalArgumentException("자동차 이름은 중복이 안됩니다."); } - recentRecord.put(car, recentRecord.getOrDefault(car, 0)); + currentRecord.put(car, currentRecord.getOrDefault(car, 0)); } } - } From 7c0feab58dda54b643a14d826128b843f81cb505 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 17:09:58 +0900 Subject: [PATCH 05/15] =?UTF-8?q?feat(car):=20=EA=B8=B0=EC=A1=B4=20racingC?= =?UTF-8?q?arLauncher=20=EC=97=90=20=EA=B0=99=EC=9D=B4=20=EC=A1=B4?= =?UTF-8?q?=EC=9E=AC=ED=96=88=EB=8D=98=20currentRecord=20=EB=A5=BC=20Car?= =?UTF-8?q?=20=EA=B0=9D=EC=B2=B4=EB=A1=9C=20=EB=94=B0=EB=A1=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Car 객체에 자동차의 이름을 뜻하는 name, 전진 횟수를 뜻하는 forward 필드 구현 - Car 객체의 초기화 메서드와 get 메서드 구현 - 정적 팩토리 메서드를 사용해 Car 객체를 생성하게끔 구현 - 전진 횟수를 변화시키는 move 메서드 구현 - 자동차 이름이 5글자를 초과하면 IllegalArgumentException 발생 --- src/main/java/racingcar/model/Car.java | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/racingcar/model/Car.java diff --git a/src/main/java/racingcar/model/Car.java b/src/main/java/racingcar/model/Car.java new file mode 100644 index 0000000000..adee16d0d5 --- /dev/null +++ b/src/main/java/racingcar/model/Car.java @@ -0,0 +1,33 @@ +package racingcar.model; + +public class Car { + + private String name; + private int forward; + + private Car(String name) { + if(name.length() > 5){ + throw new IllegalArgumentException("자동차 이름은 5자를 초과할 수 없습니다."); + } + this.name = name; + this.forward = 0; + } + + public static Car of(String name) { + return new Car(name); + } + + public String getName(){ + return name; + } + + public int getForward(){ + return forward; + } + + public void move(int count){ + forward += count; + } + + +} From 515d375902523dcd8fc6352c44ff81c07a0a088d Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 17:57:08 +0900 Subject: [PATCH 06/15] =?UTF-8?q?feat(RacingManager):=20=EA=B8=B0=EC=A1=B4?= =?UTF-8?q?=20racingCarLauncher=20=EC=97=90=20=ED=98=BC=EC=9E=AC=EB=8F=BC?= =?UTF-8?q?=EC=9E=88=EB=8D=98=20=EC=8B=A4=ED=96=89=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=EC=99=80=20=ED=95=B5=EC=8B=AC=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=EC=9D=84=20=EB=B6=84=EB=A6=AC,=20RacingManag?= =?UTF-8?q?er=20=ED=81=B4=EB=9E=98=EC=8A=A4=EB=A5=BC=20=EC=83=88=EB=A1=9C?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=ED=95=98=EA=B3=A0=20inputCars=20=EB=A5=BC?= =?UTF-8?q?=20registerCars=20=EB=A1=9C=20=EC=83=88=EB=A1=9C=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 구분자 쉼표(,)를 통해 carNames 를 분리 - 자동차 이름이 중복이 되는 경우를 검증하는 로직 구현 - List 형식으로 이름들을 저장 --- .../java/racingcar/manager/RacingManager.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/java/racingcar/manager/RacingManager.java diff --git a/src/main/java/racingcar/manager/RacingManager.java b/src/main/java/racingcar/manager/RacingManager.java new file mode 100644 index 0000000000..f92939b4c6 --- /dev/null +++ b/src/main/java/racingcar/manager/RacingManager.java @@ -0,0 +1,29 @@ +package racingcar.manager; + +import racingcar.model.Car; + +import java.util.ArrayList; +import java.util.List; + +public class RacingManager { + + private final List cars = new ArrayList<>(); + + public void registerCars(String carNames) { + + String[] split = carNames.split(","); + + for (String carName : split) { + + isDuplicatedName(carName); + cars.add(Car.of(carName)); + } + } + + private void isDuplicatedName(String carName) { + if (cars.stream().anyMatch(car -> car.getName().equals(carName))) { + throw new IllegalArgumentException("자동차 이름은 중복이 안됩니다."); + } + } + +} From 4d9370ce2bc4e8af29dabefb5e62e5939d8976a4 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 18:12:12 +0900 Subject: [PATCH 07/15] =?UTF-8?q?feat(RacingManager):=20=EB=84=98=EA=B2=A8?= =?UTF-8?q?=EB=B0=9B=EC=9D=80=20=ED=9A=9F=EC=88=98=EB=A7=8C=ED=81=BC=20?= =?UTF-8?q?=EB=B0=98=EB=B3=B5=ED=95=98=EB=8A=94=20race=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Randoms.pickNumberInRange() 를 사용해 랜덤한 수를 추출하고 4가 넘어야만 전진 로직 작동 --- .../java/racingcar/manager/RacingManager.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/racingcar/manager/RacingManager.java b/src/main/java/racingcar/manager/RacingManager.java index f92939b4c6..4f4b9d43c2 100644 --- a/src/main/java/racingcar/manager/RacingManager.java +++ b/src/main/java/racingcar/manager/RacingManager.java @@ -1,5 +1,6 @@ package racingcar.manager; +import camp.nextstep.edu.missionutils.Randoms; import racingcar.model.Car; import java.util.ArrayList; @@ -20,6 +21,24 @@ public void registerCars(String carNames) { } } + public void race(String count) { + int parsedCount = Integer.parseInt(count); + System.out.println("실행 결과"); + + for (int i = 0; i < parsedCount; i++) { + cars.forEach( + car -> { + int picked = Randoms.pickNumberInRange(0, 9); + if (picked >= 4) { + car.move(picked); + } + System.out.println(car.getName() + " : " + car.getForward()); + } + ); + System.out.println(); + } + } + private void isDuplicatedName(String carName) { if (cars.stream().anyMatch(car -> car.getName().equals(carName))) { throw new IllegalArgumentException("자동차 이름은 중복이 안됩니다."); From fe20d867ae481aeb3040f1d87250b71298886e1a Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 18:31:35 +0900 Subject: [PATCH 08/15] =?UTF-8?q?feat(RacingManager):=20=EC=B5=9C=EB=8B=A4?= =?UTF-8?q?=20=EC=A0=84=EC=A7=84=EC=9D=84=20=EA=B8=B0=EB=A1=9D=ED=95=9C=20?= =?UTF-8?q?race=20=EC=9A=B0=EC=8A=B9=EC=9E=90=EB=A5=BC=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 우승자는 다수일 수 있으므로, 가장 높은 전진 수를 기록한 car 를 추출해 List 에 저장 이후 출력 --- src/main/java/racingcar/manager/RacingManager.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/racingcar/manager/RacingManager.java b/src/main/java/racingcar/manager/RacingManager.java index 4f4b9d43c2..6da95577b1 100644 --- a/src/main/java/racingcar/manager/RacingManager.java +++ b/src/main/java/racingcar/manager/RacingManager.java @@ -39,6 +39,19 @@ public void race(String count) { } } + public void presentWinner() { + int max = cars.stream().mapToInt(car -> car.getForward()).max().orElse(0); + + List winners = new ArrayList<>(); + + for(Car car : cars){ + if (car.getForward() == max) { + winners.add(car.getName()); + } + } + System.out.println("최종 우승자 : " + String.join(", ", winners)); + } + private void isDuplicatedName(String carName) { if (cars.stream().anyMatch(car -> car.getName().equals(carName))) { throw new IllegalArgumentException("자동차 이름은 중복이 안됩니다."); From b9f65856ab0b671857d59b9938068570cdae92a1 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 18:35:20 +0900 Subject: [PATCH 09/15] =?UTF-8?q?refactoring(racingCarLauncher):=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=9D=B4=EB=A6=84=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20racingCarLauncher=20->=20RacingCarLauncher?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/racingcar/RacingCarLauncher.java | 27 +++++++++++++ .../java/racingcar/racingCarLauncher.java | 38 ------------------- 2 files changed, 27 insertions(+), 38 deletions(-) create mode 100644 src/main/java/racingcar/RacingCarLauncher.java delete mode 100644 src/main/java/racingcar/racingCarLauncher.java diff --git a/src/main/java/racingcar/RacingCarLauncher.java b/src/main/java/racingcar/RacingCarLauncher.java new file mode 100644 index 0000000000..3297b9246f --- /dev/null +++ b/src/main/java/racingcar/RacingCarLauncher.java @@ -0,0 +1,27 @@ +package racingcar; + +import camp.nextstep.edu.missionutils.Console; +import racingcar.manager.RacingManager; + +public class RacingCarLauncher { + + private final RacingManager racingManager; + + public RacingCarLauncher(RacingManager racingManager) { + this.racingManager = racingManager; + } + + public void start() { + System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분"); + String carNames = Console.readLine(); + racingManager.registerCars(carNames); + + System.out.println("시도할 횟수는 몇 회인가요?"); + String count = Console.readLine(); + racingManager.race(count); + + racingManager.presentWinner(); + } + + +} diff --git a/src/main/java/racingcar/racingCarLauncher.java b/src/main/java/racingcar/racingCarLauncher.java deleted file mode 100644 index 51f83eba8c..0000000000 --- a/src/main/java/racingcar/racingCarLauncher.java +++ /dev/null @@ -1,38 +0,0 @@ -package racingcar; - -import camp.nextstep.edu.missionutils.Console; -import camp.nextstep.edu.missionutils.Randoms; -import org.assertj.core.data.Index; - -import java.util.HashMap; -import java.util.Map; - -public class racingCarLauncher { - - private Map currentRecord = new HashMap<>(); - - public void start() { - System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분"); - String cars = Console.readLine(); - inputCars(cars); - - System.out.println("시도할 횟수는 몇 회인가요?"); - String count = Console.readLine(); - } - - private void inputCars(String cars) { - - String[] split = cars.split(","); - - for (String car : split) { - - if (car.length() > 5) { - throw new IllegalArgumentException("자동차의 이름은 5자 이하만 가능합니다."); - } - if (currentRecord.containsKey(car)) { - throw new IllegalArgumentException("자동차 이름은 중복이 안됩니다."); - } - currentRecord.put(car, currentRecord.getOrDefault(car, 0)); - } - } -} From 15814ce3d411c3b50f37df823b14a78edbdc0044 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 23:32:34 +0900 Subject: [PATCH 10/15] =?UTF-8?q?refactoring(car):=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=9A=94=EA=B5=AC=20=EC=A1=B0=EA=B1=B4=EC=9D=80=20=EB=AC=B4?= =?UTF-8?q?=EC=9E=91=EC=9C=84=EB=A1=9C=20=EC=B6=94=EC=B6=9C=ED=95=9C=20?= =?UTF-8?q?=EC=88=98=20=EB=A7=8C=ED=81=BC=20=EC=A0=84=EC=A7=84=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EA=B2=8C=20=EC=95=84=EB=8B=88=EB=9D=BC=204?= =?UTF-8?q?=EC=9D=B4=EC=83=81=EC=9D=B4=EB=A9=B4=20"-"=20=EB=A5=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=98=EB=8A=94=20=EA=B2=83,=20=ED=95=B4?= =?UTF-8?q?=EB=8B=B9=20=EB=B6=80=EB=B6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - "-" 는 상수 FORWARD_MARK 로 선언 - 저장된 전진 수 만큼 FORWARD_MARK 를 반복 출력하는 getForwardMark 기능 추가 --- src/main/java/racingcar/model/Car.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/racingcar/model/Car.java b/src/main/java/racingcar/model/Car.java index adee16d0d5..83d1c108ea 100644 --- a/src/main/java/racingcar/model/Car.java +++ b/src/main/java/racingcar/model/Car.java @@ -2,6 +2,7 @@ public class Car { + private final static String FORWARD_MARK = "-"; private String name; private int forward; @@ -25,8 +26,12 @@ public int getForward(){ return forward; } - public void move(int count){ - forward += count; + public String getForwardMark(){ + return FORWARD_MARK.repeat(forward); + } + + public void move(){ + forward++; } From c5f0848b984e82638e586e26e626cd342812eb83 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 23:35:59 +0900 Subject: [PATCH 11/15] =?UTF-8?q?refactoring(racing-manager):=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=EC=9A=94=EA=B5=AC=20=EC=A1=B0=EA=B1=B4=EC=9D=80=20?= =?UTF-8?q?=EB=AC=B4=EC=9E=91=EC=9C=84=EB=A1=9C=20=EC=B6=94=EC=B6=9C?= =?UTF-8?q?=ED=95=9C=20=EC=88=98=20=EB=A7=8C=ED=81=BC=20=EC=A0=84=EC=A7=84?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EA=B2=8C=20=EC=95=84=EB=8B=88=EB=9D=BC=20?= =?UTF-8?q?4=EC=9D=B4=EC=83=81=EC=9D=B4=EB=A9=B4=20"-"=20=EB=A5=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=98=EB=8A=94=20=EA=B2=83,=20=ED=95=B4?= =?UTF-8?q?=EB=8B=B9=20=EB=B6=80=EB=B6=84=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/racingcar/manager/RacingManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/racingcar/manager/RacingManager.java b/src/main/java/racingcar/manager/RacingManager.java index 6da95577b1..7a3f25fce0 100644 --- a/src/main/java/racingcar/manager/RacingManager.java +++ b/src/main/java/racingcar/manager/RacingManager.java @@ -30,9 +30,9 @@ public void race(String count) { car -> { int picked = Randoms.pickNumberInRange(0, 9); if (picked >= 4) { - car.move(picked); + car.move(); } - System.out.println(car.getName() + " : " + car.getForward()); + System.out.println(car.getName() + " : " + car.getForwardMark()); } ); System.out.println(); @@ -40,6 +40,7 @@ public void race(String count) { } public void presentWinner() { + int max = cars.stream().mapToInt(car -> car.getForward()).max().orElse(0); List winners = new ArrayList<>(); From d6c8d27446bd725280dc7efc1e6906cdde8f8e1d Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 23:37:01 +0900 Subject: [PATCH 12/15] =?UTF-8?q?refactoring(racing-car-launcher):=20?= =?UTF-8?q?=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95=20"(=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=EC=9D=80=20=EC=89=BC=ED=91=9C(,)=20=EA=B8=B0=EC=A4=80=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EA=B5=AC=EB=B6=84"=20->=20"=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=EC=9D=80=20=EC=89=BC=ED=91=9C(,)=20=EA=B8=B0=EC=A4=80=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EA=B5=AC=EB=B6=84"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/RacingCarLauncher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/racingcar/RacingCarLauncher.java b/src/main/java/racingcar/RacingCarLauncher.java index 3297b9246f..e4c6dd187b 100644 --- a/src/main/java/racingcar/RacingCarLauncher.java +++ b/src/main/java/racingcar/RacingCarLauncher.java @@ -12,7 +12,7 @@ public RacingCarLauncher(RacingManager racingManager) { } public void start() { - System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분"); + System.out.println("경주할 자동차 이름을 입력하세요. 이름은 쉼표(,) 기준으로 구분"); String carNames = Console.readLine(); racingManager.registerCars(carNames); From b8e8bf66a2831408a806231970b9a1d97cb936e7 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 23:45:37 +0900 Subject: [PATCH 13/15] =?UTF-8?q?feat(app-config):=20RacingCarLauncher=20?= =?UTF-8?q?=EC=9D=98=20=EC=84=A4=EC=A0=95=EC=9D=84=20=EC=9C=84=ED=95=9C=20?= =?UTF-8?q?config=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - RacingCarLauncher 의 사용 영역과 설정 영역 분리에 초점 - 기능이 단순한 점을 고려해 향후 확장에 편리하도록 간단하게 설계 --- src/main/java/racingcar/config/AppConfig.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/racingcar/config/AppConfig.java diff --git a/src/main/java/racingcar/config/AppConfig.java b/src/main/java/racingcar/config/AppConfig.java new file mode 100644 index 0000000000..1368c87c17 --- /dev/null +++ b/src/main/java/racingcar/config/AppConfig.java @@ -0,0 +1,13 @@ +package racingcar.config; + +import racingcar.RacingCarLauncher; +import racingcar.manager.RacingManager; + +public class AppConfig { + + public RacingCarLauncher racingCarLauncher(){ + RacingManager racingManager = new RacingManager(); + return new RacingCarLauncher(racingManager); + } + +} From 899dfc84ff5e56317d2923e8495f3965b198fc07 Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 23:48:45 +0900 Subject: [PATCH 14/15] =?UTF-8?q?test(racing-manager):=20racingManager=20?= =?UTF-8?q?=ED=86=B5=ED=95=A9=20=EA=B8=B0=EB=8A=A5=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - registerCars(), race(), presentWinner() 가 원하는대로 동작하는지 통합 테스트 --- .../racingcar/manager/RacingManagerTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/test/java/racingcar/manager/RacingManagerTest.java diff --git a/src/test/java/racingcar/manager/RacingManagerTest.java b/src/test/java/racingcar/manager/RacingManagerTest.java new file mode 100644 index 0000000000..feb20c13a8 --- /dev/null +++ b/src/test/java/racingcar/manager/RacingManagerTest.java @@ -0,0 +1,19 @@ +package racingcar.manager; + +import org.junit.jupiter.api.Test; +import racingcar.config.AppConfig; + +import static org.junit.jupiter.api.Assertions.*; + +class RacingManagerTest { + + @Test + void racingManagerTest() { + RacingManager racingManager = new RacingManager(); + racingManager.registerCars("CarA,CarB,CarC"); + + racingManager.race("3"); + + racingManager.presentWinner(); + } +} \ No newline at end of file From d680e6f468c6741efd3ffe56374e015f27fdccdb Mon Sep 17 00:00:00 2001 From: sobaman Date: Mon, 28 Oct 2024 23:50:29 +0900 Subject: [PATCH 15/15] =?UTF-8?q?feat:=20=EC=8B=A4=ED=96=89=20=EC=98=81?= =?UTF-8?q?=EC=97=AD=EC=9D=B8=20Application=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AppConfig를 통해 RacingCarLauncher 인스턴스를 생성하고, 레이싱 시작 메서드를 호출 --- src/main/java/racingcar/Application.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e724..801a74a62f 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,15 @@ package racingcar; +import racingcar.config.AppConfig; +import racingcar.manager.RacingManager; + public class Application { + + public static void main(String[] args) { // TODO: 프로그램 구현 + AppConfig appConfig = new AppConfig(); + RacingCarLauncher racingCarLauncher = appConfig.racingCarLauncher(); + racingCarLauncher.start(); } }