- 경주에 참여 할 자동차 입력을 입력 한다.(,로 구분)
- 경주가 몇 라운드로 진행 될지 입력 한다.
- 한 라운드 당 한 차량은 전진 또는 멈출 수 있다.
- 전진 조건 : 0
9의 랜덤 숫자 중 03이 나온 경우 - 멈춤 조건 : 0
9의 랜덤 숫자 중 40가 나온 경우
- 모든 라운드가 진행 된 후, 최종 우승자를 알 수 있다
- 우승자는 한 명 이상 일 수 있다.
- TDD로 구현 가능한 요구사항을 먼저 구현한다.
- 자동차 객체 (Car)
- 자동차이름, 점수를 갖는다.
- 점수를 추가 기능 구현
- 자동차 리스트 객체 (Cars)
- 자동차 1 대 이상, 자동차 이름 길이 5자 이하 유효셩 체크
- 진행 중 스코어 출력 기능 구현
- 승자 구하는 기능 구현
- 게임 진행 객체 (Game)
- 라운드 입력 받아 유효성 체크 (1이상의 숫자)
- 게임 진행
- Cars 객체로 명령을 보내는 역할
- 최종 결과 출력
- 랜덤 생성과 관련 된 부분을 구현한다.
- 랜덤 숫자 객체 (RandomNumber)
- 전진/멈춤 판단 객체 (Judgement)
- 전진/멈춤 enum 구현 (MoveStatus)
- 그 외 게임 실행 및 메시지와 관련된 부분을 구현한다.
- Message 출력 enum 구현 (Message)
- print log에 대한 util클래스 구현 (PrintHelper)
- 게임 시작 Application 구현 (GameStarter)
- validation체크 객체 구현 (Validator)