[자동차 경주] 임재혁 미션 제출합니다 #936
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#구현목록
입력기능
1.1 경주할 자동차 이름들을 쉼표(,)를 기준으로 구분하여 입력받는다.
1.2 사용자가 시도할 이동횟수를 입력받는다.
로직1
2.1 각 자동차는 0~9 사이의 무작위 값을 구한다. 이때의 값은 INT형으로 제한한다.
2.2 무작위 값이 4이상일 경우, 해당 자동차는 1칸 전진한다.
2.3 무작위 값이 3이하일 경우, 해당 자동차는 현재 위치를 유지한다.
2.4 사용자의 입력에서 받은 횟수만큼 위 과정을 반복한다.
출력 기능
3.1 각 라운드별로 각 자동차의 이름과 현재까지의 전진 상태를 출력한다. (ex: pobi : --)
3.2 모든 라운드가 종료된 후, 가장 많이 전진한 자동차를 최종 우숭자로 선정한다.
3.3 우승자가 여러 대일 경우, 쉼표(,)를 기준으로 구분하여 모두 출력한다.
Validator class (예외처리 구현)
4.1 사용자가 입력한 자동차 이름이 5글자를 초과하는 경우,
IllegalArgumentException을 발생시키고 애플리케이션을 종료한다.
4.2 사용자가 유효하지않은 값을 입력할 경우, IllegalArgumentException을 발생시키고 애플리케이션을 종료한다.
RacingRoundController class (로직2 구현)
1,2,3,4를 수행하는 로직을 구성한다.
5.1 - 입력기능(자동차의 이름과 이동횟수)을 오케스트레이션한다.
5.2 - 3.1에서 입력받은 정보대로 자동차들을 구현한다. 이때, 5.1(예외처리)를 처리한다.
5.3 - 3.1에서 입력받은 정보대로 게임을 구성한다. 이때 5.2(예외처리)를 처리한다.
5.4 - 4.1(출력기능)을 오케스트레이션한다.
5.5 - 3.4가 종료될때, 4.2(우승자 선정)을 수행한다.
5.6 - 3.5가 종료될 때, 4.3(우승자 출력)을 수행한다.