- [ ] 자동차는 이름을 가지고 있다.
- [x] 자동차는 움직일 수 있다.
- [X] 0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상일 경우 전진하고, 3 이하의 값이면 멈춘다.
- [X] n대의 자동차가 참여할 수 있다.
- [X] 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
- [X] 0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상일 경우 전진하고, 3 이하의 값이면 멈춘다.
- [X] 자동차 경주 게임을 완료한 후 누가 우승했는지를 구할 수 있다. 우승자는 한 명 이상일 수 있다.
- [ ] 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
- [ ] 각 자동차에 이름을 부여할 수 있다. 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.
- [ ] 자동차 이름은 쉼표(,)를 기준으로 구분하며 이름은 5자 이하만 가능하다.
- [ ] 사용자는 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.
- [ ] 전진하는 조건은 0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상일 경우 전진하고, 3 이하의 값이면 멈춘다.
- [ ] 자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상일 수 있다.
선언할때 값을 할당 안해도 final를 넣을 수 있다..!
- Input시 예외처리..
InputView에서 하는가? Serive에서 하는가.
에러 핸들링은 어디서 하는가..
입력을 받자마자 바로 처리하는게 좋은 것인지, 코드상에서 에러가 나기 시작하는 지점에서 예외처리를 하는게 좋은 것인지..
- Dto를 제작해야 할까?
현재 코드에선 car.move가 public임
하지만 outView에서는 이 메소드에 접근하지 않으므로 CarList를 넘기는 것보다 RoundResultDto를 넘기는 것이 맞다 판단..
- 게임의 N번 실행은 Controller의 역할? RacingGame의 역할?
뭔가 RacingGame에서 N번 라운드를 실행해야 할 것 같다.
그러면 OutputView가 RacingGame의 라운드 결과를 출력하는 과정이 매끄럽지 않아진다.
* OutputView가 RacingGame 안에서 동작해야 함 -> contoller의 역할이 애매해진다.
- model(Domain)은 메소드를 안 가지는 것이 좋은가?
뭔가 도메인이 해야하는 일들은 서비스에서 처리하는 것이 더욱 깔끔할 것 같다..
- vaildator를 넣으면 특정 객체에 대한 탐색을 두번하게 된다 -> 비효율적인가?
- 출력되는 메세지는 어떻게 테스트하지?
애초에 테스트를 해야하나??