Skip to content

초록 스터디 자바 기초 과정 자동차 경주 미션을 위한 저장소

Notifications You must be signed in to change notification settings

LHC0312/java-racingcar-simple-playground

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

자동차 경주

1단계 - 움직이는 자동차

- [ ] 자동차는 이름을 가지고 있다.
- [x] 자동차는 움직일 수 있다.
- [X] 0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상일 경우 전진하고, 3 이하의 값이면 멈춘다.

2단계 - 우승 자동차 구하기

- [X] n대의 자동차가 참여할 수 있다.
- [X] 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.
- [X] 0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상일 경우 전진하고, 3 이하의 값이면 멈춘다.
- [X] 자동차 경주 게임을 완료한 후 누가 우승했는지를 구할 수 있다. 우승자는 한 명 이상일 수 있다.

3단계 - 게임 실행

- [ ] 주어진 횟수 동안 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를 넣으면 특정 객체에 대한 탐색을 두번하게 된다 -> 비효율적인가?

- 출력되는 메세지는 어떻게 테스트하지?
    애초에 테스트를 해야하나??

About

초록 스터디 자바 기초 과정 자동차 경주 미션을 위한 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%