diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index a17a52e7..d1c15648 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -1,7 +1,33 @@ package racingcar; +import java.util.ArrayList; +import java.util.List; +import static camp.nextstep.edu.missionutils.Console.readLine; + public class Application { public static void main(String[] args) { - // TODO: 프로그램 구현 + System.out.println("경주할 자동차 이름을 입력하세요. (이름은 쉼표(,) 기준으로 구분)"); + String[] names = readLine().split(","); + List cars = new ArrayList<>(); + + for (String name: names) { + cars.add(new Car(name)); + } + + System.out.println("시도할 횟수는 몇 회인가요?"); + int count = Integer.parseInt(readLine()); + + System.out.println("실행 결과"); + for (int i = 0; i < count; i++) { + for (Car car: cars){ + car.move(); + System.out.println(car.getName() + " : " + car.getPositionToString()); + } + System.out.println(); + } + + GameResult gameResult = new GameResult(); + gameResult.getWinners(); + System.out.print("최종 우승자 : " + String.join(", ") + gameResult.getWinners()); } } diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java new file mode 100644 index 00000000..5c73b479 --- /dev/null +++ b/src/main/java/racingcar/Car.java @@ -0,0 +1,37 @@ +package racingcar; + +import static camp.nextstep.edu.missionutils.Randoms.pickNumberInRange; + +public class Car { + private String name; + private int position = 0; + + public Car(String name){ + if (name.length() > 5) { + throw new IllegalArgumentException("오류: 문자열은 최대 5글자까지만 입력할 수 있습니다."); + } + this.name = name; + } + + public Car(int position){ + this.position = position; + } + + public void move(){ + if (pickNumberInRange(0, 9) >= 4) { + position += 1; + } + } + + public String getPositionToString(){ + return "-".repeat(position); + } + + public String getName(){ + return name; + } + + public int getPosition() { + return position; + } +} diff --git a/src/main/java/racingcar/GameResult.java b/src/main/java/racingcar/GameResult.java new file mode 100644 index 00000000..645989a3 --- /dev/null +++ b/src/main/java/racingcar/GameResult.java @@ -0,0 +1,25 @@ +package racingcar; + +import java.util.List; + +public class GameResult { + private List winners; + + public List getWinners() { + int winnerPosition = 0; + + for (Car cars : winners) { + if (cars.getPosition() > winnerPosition) { + winnerPosition = cars.getPosition(); + } + } + + for (Car cars : winners) { + if (cars.getPosition() == winnerPosition) { + winners.add(cars); + } + + } + return winners; + } +}