- 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
- 각 자동차에 이름을 부여할 수 있다. 전진하는 자동차를 출력할 떄 자동차 이름을 같이 출력한다.
- 자동차 이름은 쉼표(,)를 기준으로 구분하여 이름은 5자 이하만 가능하다.
- 사용자는 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.
- 전진하는 조건은 0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상일 경우 전진하고, 3 이하의 값이면 멈춘다.
- 자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상 일 수 있다.
- 모든 로직에 단위 테스트를 구현한다. 단,UI(System.out, System.in) 로직은 제외한다.
- 자바 코드 컨벤션을 지키면서 프로그래밍한다.
- 인덴트(indent, 들여쓰기) depth를 3을 넘지 않도록 구현한다. 2까지만 허용한다.
- 예) while문 안에 if문이 있으면 들여쓰기는 2이다.
- 참고 : 들여쓰기 depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.
- else 예약어를 쓰지 않는다.
- 참고 : if 조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.
- switch/case도 허용하지 않는다.
- 사용자에게 플레이 할 자동차의 이름을 입력받고, 플레이할 횟루를 입력받는다. 매 라운드(횟수) 마다 각 사용자는 무작위로 생성된 난수에 의해 GO / STOP 이 결정된다.
- 매 라운드 별로 결과를 출력하고, 모든 라운드가 종료되는 경우 우승자를 출력한다.
-
함께 플레이할 사용자를 입력받는다.
- 1~5 글자
- 공백 및 NULL Exception 구현해야함
- 쉼표(,)를 기준으로 구분
- 중복된 이름 입력 Exception
-
플레이할 횟수를 입력받는다.
- 1 ~ 30회
- 1보다 작은 수 Exception
- 문자열 Exception
- 30 이상의 수인 경우 Exception
-
전진하는 조건은 0 ~ 9 사이의 Random 값을 구한 후 4이상이면 전진, 3이하면 멈춘다.
- 전진하는 조건은 달라질 수 있다고 가정한다.
- 차의 종류나 탈 것의 변경
- 다른 조건에 의한 이동
- 위의 조건에 의해 전진 시 이동 거리가 달라 질 수 있다.
- 전진하는 조건은 달라질 수 있다고 가정한다.
-
매 라운드 별로 각 사용자의 이름과 Position을 출력한다.
- 매 라운드 결과 값을 저장하고 있는다.
-
모든 라운드가 종료되면 최종 우승자의 이름을 출력한다.
- 라운드 결과 중 마지막 라운드의 결과를 출력한다.
+ IDE : Intellij
+ Test : Junta
+ Lang : Java8
+ Build : Gradle