From 2e0d6fb220743bd70cccb7f4398bfc06322e852f Mon Sep 17 00:00:00 2001 From: chlwlgus4 Date: Sat, 4 Jul 2020 22:29:46 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EC=9E=90=EB=8F=99=EC=B0=A8=20=EA=B2=BD?= =?UTF-8?q?=EC=A3=BC=20=EC=99=84=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/domain/Application.java | 38 +++++++++++++++++++++++++ src/main/java/domain/Car.java | 40 +++++++++++++++++++++++++-- src/main/java/domain/Racing.java | 7 +++++ 3 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 src/main/java/domain/Application.java create mode 100644 src/main/java/domain/Racing.java diff --git a/src/main/java/domain/Application.java b/src/main/java/domain/Application.java new file mode 100644 index 0000000..fbb8689 --- /dev/null +++ b/src/main/java/domain/Application.java @@ -0,0 +1,38 @@ +package domain; + +import java.util.Scanner; + +public class Application { + public static Car car; + static Scanner scanner = new Scanner(System.in); + + public static String[] carReady() { + System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); + String name = scanner.next(); + String[] cars = name.split(","); + for (int i = 0; i < cars.length; i++) { + if (cars[i].length() > 5) { + System.out.println("경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)"); + name = scanner.next(); + cars = name.split(","); + } + } + return cars; + } + + public static void main(String[] args) { + String[] carRacers = carReady(); + System.out.println("시도할 회수는 몇회인가요?"); + int turn = scanner.nextInt(); + String[] check = carRacers; + for (int i = 0; i < turn; i++) { + for (int j = 0; j < carRacers.length; j++) { + car = new Car(carRacers[j], i); + check[j] += car.racing(); + System.out.println(check[j]); + } + } + System.out.println(car.finish(check) + "(이) 최종 우승했습니다."); + } +} + diff --git a/src/main/java/domain/Car.java b/src/main/java/domain/Car.java index 84b034c..140e0c5 100644 --- a/src/main/java/domain/Car.java +++ b/src/main/java/domain/Car.java @@ -1,12 +1,46 @@ package domain; -public class Car { +import java.util.Arrays; + +public class Car implements Racing { private final String name; private int position = 0; - public Car(String name) { + public Car(String name, int position) { this.name = name; + this.position = position; + } + + /*TODO: 2020/06/28 추가기능 구현*/ + + @Override + public String racing() { + String finish = ""; + int dice = (int) (Math.random() * 10) + 1; + if (position == 0) + finish = " : "; + if (dice > 4) + finish += "-"; + return finish; + } + + @Override + public String finish(String[] check) { + System.out.println(Arrays.toString(check)); + String winner = ""; + int[] point = new int[check.length]; + for (int i = 0; i < check.length; i++) { + if (check[i].indexOf("-") != -1) + point[i] = check[i].substring(check[i].indexOf("-"), check[i].length()).length(); + } + int max = Arrays.stream(point).max().getAsInt(); + for (int i = 0; i < point.length; i++) { + if (point[i] == max) { + winner += check[i].substring(0, check[i].indexOf(" ")) + ", "; + } + } + return winner; } - // TODO: 2020/06/28 추가기능 구현 } + diff --git a/src/main/java/domain/Racing.java b/src/main/java/domain/Racing.java new file mode 100644 index 0000000..ac494fd --- /dev/null +++ b/src/main/java/domain/Racing.java @@ -0,0 +1,7 @@ +package domain; + + +public interface Racing { + String racing(); + String finish(String[] check); +} From 986666f09130973f30b9fb50b6686a7092ae523f Mon Sep 17 00:00:00 2001 From: chlwlgus4 Date: Sat, 4 Jul 2020 23:02:57 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=AC=B8=EC=84=9C=20=EC=9E=91=EC=84=B1=20?= =?UTF-8?q?=EC=88=AB=EC=9E=90=20=EC=83=9D=EC=84=B1=20=EB=B2=94=EC=9C=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 +++++++++++++ src/main/java/domain/Car.java | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e69de29..bd1dd86 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,13 @@ +# 프로그램 흐름 +1. 경주에 참여할 차 이름을 입력 받는다. +2. 몇번의 이동을 할 것인지 입력 받는다. +3. 0~9 범위의 값중 4 이상은 전진, 3 이하는 정지한다. +4. 입력받은 이동 범위만큼 이동 후 가장 많이 전진한 차가 우승(다수 가능). + +#기능 구현 목록 +- 차 이름을 콘솔에서 직접 입력받는다. + - 이름이 5글자 이상인 경우 재입력 받아야한다. +- 전진 시 생성되는 숫자는 0~9의 범위 값만 가질 수 있다. + - 생성된 숫자가 4 이상이면 "-" 리턴 3 이하면 "" +- 가장 많이 전진한 차량 우승 + - 우승차는 중복으로 나올 수 있다. \ No newline at end of file diff --git a/src/main/java/domain/Car.java b/src/main/java/domain/Car.java index 140e0c5..be01a25 100644 --- a/src/main/java/domain/Car.java +++ b/src/main/java/domain/Car.java @@ -16,7 +16,7 @@ public Car(String name, int position) { @Override public String racing() { String finish = ""; - int dice = (int) (Math.random() * 10) + 1; + int dice = (int) (Math.random() * 10); if (position == 0) finish = " : "; if (dice > 4)