From 6b4cbfb07f6b2dca59746a14ee37195c8318ae17 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:25:54 +0900 Subject: [PATCH 01/11] =?UTF-8?q?readme=20=EA=B8=B0=EB=8A=A5=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ae5f84918..88d3482aa5 100644 --- a/README.md +++ b/README.md @@ -3,5 +3,19 @@ * 숫자 야구 게임 요구사항을 파악한다. * 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 과제를 제출한다. +## 기능 목록 + +### 경주 게임 +시작한다 +입력 된 회차가 끝나면 종료한다 +### 자동차 +0~9사이 무작위 수에서 4이상인 경우에 전진한다. +0~9사이 무작위 수에서 4미만인 경우에 정지한다. +입력한 숫자에 해당하는 자동차 이름이 부여된다. + +## 사용자 +숫자를 입력한다 +이름을 입력한다 + ## 과제 제출 과정 -* [과제 제출 방법](https://github.com/next-step/nextstep-docs/tree/master/precourse) +* [과제 제출 방법](https://github.com/next-step/nextstep-docs/tree/master/precourse) \ No newline at end of file From 82448174a6bad930a603461089056c1a858c0ffe Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:31:49 +0900 Subject: [PATCH 02/11] =?UTF-8?q?=EC=9E=90=EB=8F=99=EC=B0=A8=20=EA=B2=BD?= =?UTF-8?q?=EC=A3=BC=20=EB=8F=84=EB=A9=94=EC=9D=B8=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/Car.java | 19 +++++++++++++++++++ src/main/java/Game.java | 13 +++++++++++++ src/main/java/User.java | 24 ++++++++++++++++++++++++ src/main/java/empty.txt | 0 4 files changed, 56 insertions(+) create mode 100644 src/main/java/Car.java create mode 100644 src/main/java/Game.java create mode 100644 src/main/java/User.java delete mode 100644 src/main/java/empty.txt diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 0000000000..52ef35a010 --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,19 @@ +import java.util.Random; + +public class Car { + private String name; + private int position; + + public Car(String name) { + this.name = name; + this.position = 0; + } + + public String getName() { + return name; + } + + public int getPosition() { + return position; + } +} \ No newline at end of file diff --git a/src/main/java/Game.java b/src/main/java/Game.java new file mode 100644 index 0000000000..ebe38a7231 --- /dev/null +++ b/src/main/java/Game.java @@ -0,0 +1,13 @@ +import java.util.List; + +public class Game { + private List cars; + + public Game(List cars) { + this.cars = cars; + } + + public List getCars() { + return cars; + } +} diff --git a/src/main/java/User.java b/src/main/java/User.java new file mode 100644 index 0000000000..e92d181c20 --- /dev/null +++ b/src/main/java/User.java @@ -0,0 +1,24 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class User { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + + System.out.println("경주할 자동차 이름을 입력 하세요. (이름은 쉼표(,)로 구분)"); + String input = scanner.nextLine(); + + String[] splitCarNames = input.split(","); + List cars = new ArrayList<>(); + + for (String carName : splitCarNames) { + cars.add(new Car(carName)); + } + + System.out.println("시도할 회수는 몇회인가요?"); + int rounds = scanner.nextInt(); + + scanner.close(); + } +} diff --git a/src/main/java/empty.txt b/src/main/java/empty.txt deleted file mode 100644 index e69de29bb2..0000000000 From 6ed2d641af344d208a5bfb26da1225c5a314d767 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:34:36 +0900 Subject: [PATCH 03/11] =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=EB=AC=B8=EA=B5=AC?= =?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/User.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/User.java b/src/main/java/User.java index e92d181c20..4b3606d07f 100644 --- a/src/main/java/User.java +++ b/src/main/java/User.java @@ -19,6 +19,8 @@ public static void main(String[] args) { System.out.println("시도할 회수는 몇회인가요?"); int rounds = scanner.nextInt(); + System.out.println("실행 결과"); + scanner.close(); } } From af6f2bbfb9dcfcc8d92b9974224999b7bb0b1ec5 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:35:13 +0900 Subject: [PATCH 04/11] =?UTF-8?q?=EB=9E=9C=EB=8D=A4=EC=88=AB=EC=9E=90?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EC=B0=A8=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EC=A1=B0=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/Car.java b/src/main/java/Car.java index 52ef35a010..88d44699b2 100644 --- a/src/main/java/Car.java +++ b/src/main/java/Car.java @@ -16,4 +16,10 @@ public String getName() { public int getPosition() { return position; } + + public void moveOrStop(){ + Random random = new Random(); + int randomNumber = random.nextInt(10); + if(randomNumber >= 4) position++; + } } \ No newline at end of file From 72b81a4d58492b4f37b0f8373fbe043dd4a11b44 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:37:37 +0900 Subject: [PATCH 05/11] =?UTF-8?q?=EC=B0=A8=20=EC=9D=B4=EB=8F=99=EC=9C=84?= =?UTF-8?q?=EC=B9=98=20=EA=B8=B0=EB=A1=9D=20=EA=B8=B0=EB=8A=A5=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/Game.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/Game.java b/src/main/java/Game.java index ebe38a7231..ed853dc7e3 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -10,4 +10,13 @@ public Game(List cars) { public List getCars() { return cars; } + + private void printCarPosition(Car car) { + System.out.println(car.getName() + " : "); + int carPosition = car.getPosition(); + for (int i = 0; i < carPosition; i++) { + System.out.println("-"); + } + System.out.println(); + } } From f417b84f7cd27ebe643099d8dda48fd62079bbf2 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:42:31 +0900 Subject: [PATCH 06/11] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EC=97=90=20=EA=B2=8C=EC=9E=84=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EA=B0=9D=EC=B2=B4=20=EC=82=BD=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/User.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/User.java b/src/main/java/User.java index 4b3606d07f..063a8a0b04 100644 --- a/src/main/java/User.java +++ b/src/main/java/User.java @@ -19,6 +19,9 @@ public static void main(String[] args) { System.out.println("시도할 회수는 몇회인가요?"); int rounds = scanner.nextInt(); + Game game = new Game(cars); + game.startGame(rounds); + System.out.println("실행 결과"); scanner.close(); From e16ca0c0354c0699df49fb81e4acde1677d7d756 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:43:20 +0900 Subject: [PATCH 07/11] =?UTF-8?q?=EC=B0=A8=20=EC=9C=84=EC=B9=98=20?= =?UTF-8?q?=ED=94=84=EB=A6=B0=ED=8A=B8=20=EA=B8=B0=EB=8A=A5=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=B0=8F=20=EA=B2=8C=EC=9E=84=EC=8B=9C=EC=9E=91=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Game.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/Game.java b/src/main/java/Game.java index ed853dc7e3..fb724e1b8f 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -12,11 +12,21 @@ public List getCars() { } private void printCarPosition(Car car) { - System.out.println(car.getName() + " : "); + System.out.print(car.getName() + " : "); int carPosition = car.getPosition(); for (int i = 0; i < carPosition; i++) { - System.out.println("-"); + System.out.print("-"); } System.out.println(); } + + public void startGame(int rounds){ + for (int i = 0; i < rounds; i++) { + for (Car car : cars) { + car.moveOrStop(); + printCarPosition(car); + } + System.out.println(); + } + } } From c5ef626b1188201808a6d1e4bc3776bc622b9480 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:48:29 +0900 Subject: [PATCH 08/11] =?UTF-8?q?=EC=B5=9C=EC=A2=85=20=EC=9A=B0=EC=8A=B9?= =?UTF-8?q?=EC=9E=90=20=EA=B2=B0=EC=A0=95=20=EA=B8=B0=EB=8A=A5=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/Game.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/Game.java b/src/main/java/Game.java index fb724e1b8f..f1070f68ec 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -1,3 +1,4 @@ +import java.util.ArrayList; import java.util.List; public class Game { @@ -28,5 +29,16 @@ public void startGame(int rounds){ } System.out.println(); } + decideGameWinner(rounds); } -} + + private void decideGameWinner(int rounds) { + List winnerNames = new ArrayList<>(); + for (Car car : cars) { + if (car.getPosition() == rounds) { + winnerNames.add(car.getName()); + } + } + System.out.println("최종 우승자 : " + String.join(", ", winnerNames)); + } +} \ No newline at end of file From bcdb1378d912f3ed12ceb715cb71e33cfebbb15a Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:49:10 +0900 Subject: [PATCH 09/11] =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=EB=AC=B8=EA=B5=AC?= =?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/User.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/User.java b/src/main/java/User.java index 063a8a0b04..b28bb7dfcb 100644 --- a/src/main/java/User.java +++ b/src/main/java/User.java @@ -18,12 +18,11 @@ public static void main(String[] args) { System.out.println("시도할 회수는 몇회인가요?"); int rounds = scanner.nextInt(); + System.out.println("실행 결과"); Game game = new Game(cars); game.startGame(rounds); - - System.out.println("실행 결과"); - + scanner.close(); } } From 1042b93f801e25f5170d7694b6199c457c222df2 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:52:32 +0900 Subject: [PATCH 10/11] =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=88=98=EC=A0=95(?= =?UTF-8?q?=ED=9A=8C=EC=B0=A8=EB=8F=84=EB=8B=AC=EC=9D=B4=20=EC=B5=9C?= =?UTF-8?q?=EC=A2=85=EC=9A=B0=EC=8A=B9=EC=9E=90=EA=B0=80=20=EC=95=84?= =?UTF-8?q?=EB=8B=8C=20=EC=B5=9C=EC=9E=A5=EC=9C=84=EC=B9=98=EA=B0=80=20?= =?UTF-8?q?=EC=B5=9C=EC=A2=85=EC=9A=B0=EC=8A=B9=EC=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Game.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/Game.java b/src/main/java/Game.java index f1070f68ec..da64ce7837 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -33,9 +33,14 @@ public void startGame(int rounds){ } private void decideGameWinner(int rounds) { + int maxPosition = 0; + for (Car car : cars) { + maxPosition = Math.max(maxPosition, car.getPosition()); + } + List winnerNames = new ArrayList<>(); for (Car car : cars) { - if (car.getPosition() == rounds) { + if (car.getPosition() == maxPosition) { winnerNames.add(car.getName()); } } From a1e8081db7d50e6f103a65e98638dc821aed9c0c Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 9 Jun 2024 21:57:23 +0900 Subject: [PATCH 11/11] =?UTF-8?q?=EB=AF=B8=EC=82=AC=EC=9A=A9=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Game.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/Game.java b/src/main/java/Game.java index da64ce7837..d6fee01c27 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -29,10 +29,10 @@ public void startGame(int rounds){ } System.out.println(); } - decideGameWinner(rounds); + decideGameWinner(); } - private void decideGameWinner(int rounds) { + private void decideGameWinner() { int maxPosition = 0; for (Car car : cars) { maxPosition = Math.max(maxPosition, car.getPosition());