- 자동차 이름은 1~5자 조건을 지키며 생성된다.
- 자동차는 이름과 위치를 보관하고, 이동 가능할 때 위치가 1 증가한다.
- 여러 대의 자동차를 묶어 이동시키고 최대 위치를 확인한다.
- 난수 생성값이 4 이상일 때 이동을 허용한다.
- 입력된 시도 횟수만큼 라운드를 진행한다.
- 각 라운드에서 모든 자동차가 한 번씩 이동을 시도한다.
- 가장 멀리 전진한 자동차가 우승자가 되며, 동일 최대 위치면 공동 우승자를 반환한다.
- 안내 문구를 명세와 동일하게 출력한 뒤 자동차 이름을 입력받는다.
- 안내 문구를 출력한 뒤 시도 횟수를 입력받는다.
- 입력된 문자열은 1차 검증을 수행한다.
- 검증된 문자열을 도메인 객체로 변환한다.
- 자동차 수는 2대 이상이어야 한다.
- 시도 횟수는 숫자만으로 이루어진 1 이상의 정수여야 한다.
- 잘못된 입력이 들어오면 예외를 발생시킨 후 애플리케이션을 종료한다.
- 횟수가 입력된 이후 '실행 결과' 문구를 출력한다.
- 각 라운드마다 모든 자동차의 현재 위치를 출력 명세의 '차수별 실행 결과' 형식에 맞게 출력한다.
- 라운드와 라운드 사이에 빈 줄을 한 줄 출력한다.
- 경주 종료 후 최종 우승자를 출력한다.
- 출력 시 우승자 이름은 입력 순서를 유지한다.