diff --git a/README.md b/README.md index ac237bb906..f7a9546d47 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ - 미션은 **기능 요구사항, 프로그래밍 요구사항, 과제 진행 요구사항** 세 가지로 구성되어 있다. - 세 개의 요구사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다. -## ✉️ 미션 제출 방법 +## ✉️ 미션 제출 방법 - 미션 구현을 완료한 후 GitHub을 통해 제출해야 한다. - GitHub을 활용한 제출 방법은 [프리코스 과제 제출 문서](https://github.com/woowacourse/woowacourse-docs/tree/master/precourse) 를 참고해 제출한다. diff --git a/src/main/java/racingcar/Application.java b/src/main/java/racingcar/Application.java index b9ed0456a3..028c802270 100644 --- a/src/main/java/racingcar/Application.java +++ b/src/main/java/racingcar/Application.java @@ -2,6 +2,7 @@ public class Application { public static void main(String[] args) { - // TODO 구현 진행 + Race race = new Race(); + race.run(); } } diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/Car.java index ab3df94921..1245d29f02 100644 --- a/src/main/java/racingcar/Car.java +++ b/src/main/java/racingcar/Car.java @@ -1,5 +1,7 @@ package racingcar; +import static camp.nextstep.edu.missionutils.Randoms.pickNumberInRange; + public class Car { private final String name; private int position = 0; @@ -7,6 +9,40 @@ public class Car { public Car(String name) { this.name = name; } + public String getName() + { + return name; + } + public int getPosition() + { + return position; + } + public void start() + { + int dice = pickNumberInRange(0,9); + if (canGo(dice)) + move(); + } + private boolean canGo(int dice) + { + if (dice >= 4) + return true; + return false; + } + private void move() + { + position += 1; + } + public String toString() + { + StringBuilder sb = new StringBuilder(); + sb.append(name).append(" : "); + + for(int i=0;i car.getPosition()==winnerDistance) + .toArray(Car[]::new); + } + private void printWinnerName(Car[] winners) + { + System.out.println(FINAL_WINNER+getWinnerName(winners)); + } + private String getWinnerName(Car[] winners) + { + return Arrays.stream(winners).map(Car::getName).collect(Collectors.joining(", ")); + } + private boolean validateNameLength(String name) + { + return name.length() > 5; + } + private void validateNames(String[] carnames) + { + for(String carname:carnames) + { + if(validateNameLength(carname)) + { + throw new IllegalArgumentException(ERRMASSAGE); + } + } + } +} diff --git a/src/test/java/racingcar/ApplicationTest.java b/src/test/java/racingcar/ApplicationTest.java index 8f6f70a218..a88c37cc22 100644 --- a/src/test/java/racingcar/ApplicationTest.java +++ b/src/test/java/racingcar/ApplicationTest.java @@ -33,6 +33,15 @@ class ApplicationTest extends NsTest { } ); } + @Test + void 라운드에_대한_예외_처리() { + assertSimpleTest( + () -> { + runException("pobi,java","abd"); + assertThat(output()).contains(ERROR_MESSAGE); + } + ); + } @Override public void runMain() {