- 자동차 경주 게임 요구사항을 파악한다.
- 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 과제를 제출한다.
-
사용자는 자동차 이름을 입력할 수 있다.
- 자동차 이름은 5 글자 이하여야 한다.
- 자동차 이름은 중복될 수 없다.
-
사용자는 자동차의 이동횟수를 입력할 수 있다.
- limit은 5자리
-
각 자동차의 이동을 결정할 0~9 사이의 random 값을 구한다.
- random값은 정수형
-
random값이 4이상일 경우 전진, 3이하의 값이면 멈춘다.
-
모든 이동이 끝난 뒤 가장 많이 이동한 자동차가 우승한다.
-
자동차 이름 입력은 "경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."을 출력하고 다음 라인에 사용자 입력을 받는다.
- 입력이 오류일 경우 Error 메시지를 출력한다.
- Error 메시지 출력 후 입력을 다시 요구한다.
-
이동횟수는 "시도할 회수는 몇회인가요?"를 출력하고, 다음 라인에 사용자 입력을 받는다.
- 입력이 오류일 경우 Error 메시지를 출력한다.
- Error 메시지 출력 후 입력을 다시 요구한다.
-
각 회차에서 이동현황을 콘솔에 출력한다.
-
경기가 끝나고 "[우승자1], [우승자2]가 최종 우승했습니다" 형식으로 우승자를 콘솔 출력한다.
- 자동차는 5글자 이하의 이름을 가진다.
- 자동차는 현재 위치를 가진다.
경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분). pobi,crong,honux 시도할 횟수는 몇회인가요? 5
실행 결과 pobi : - crong : - honux : -
pobi : -- crong : - honux : --
pobi : --- crong : -- honux : ---
pobi : ---- crong : --- honux : ----
pobi : ----- crong : ---- honux : -----
pobi : ----- crong : ---- honux : -----
pobi, honux가 최종 우승했습니다.
- Calculator는 String을 입력받는다
- Parser는 String을 받아 유효한 입력인지 검사한다
- 문자열은 다음과 같은 조건을 만족해야 한다
- 구분자
- 기본 구분자는 ,와 :이다
- 문자열의 맨 앞에 "//"와 "\n" 사이에 커스텀 구분자를 입력할 수 있다
- 문자열 형식
- 두 숫자 사이에 구분자를 적는다
- 커스텀 구분자를 사용하는 경우 문자열 맨 앞에 정의를 적는다
- 숫자 이외의 값 또는 음수를 입력하는 경우 RuntimeException을 던진다
- 빈 문자열 혹은 null값을 입력받을 수 있다
- 구분자
- 문자열이 유효한 경우 Integer List를 반환한다
- Calculator는 Parser에게 Integer List를 전달받아 덧셈 결과를 반환한다