Skip to content

Latest commit

 

History

History
71 lines (51 loc) · 2.47 KB

step4.md

File metadata and controls

71 lines (51 loc) · 2.47 KB

image

4단계 - 자동차 경주(우승자)

우승자 기능을 추가한다.

기능 요구 사항

3단계에 이은 초간단 자동차 경주 게임을 구현한다.

  • 각 자동차에 이름을 부여할 수 있다. 자동차 이름은 5자를 초과할 수 없다.
  • 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.
  • 자동차 이름은 쉼표(,)를 기준으로 구분한다.
  • 자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상일 수 있다.

실행 결과

위 요구 사항에 따라 3대의 자동차가 5번 움직였을 경우 프로그램을 실행한 결과는 다음과 같다.

경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분).
현구막,아이들나라,전시편성짱
시도할 횟수는 몇 회인가요?
5

실행 결과
현구막 : -
아이들나라 : -
전시편성짱 : -

현구막 : --
아이들나라 : -
전시편성짱 : --

현구막 : ---
아이들나라 : --
전시편성짱 : ---

현구막 : ----
아이들나라 : ---
전시편성짱 : ----

현구막 : -----
아이들나라 : ----
전시편성짱 : -----

현구막, 전시편성짱 (이)가 최종 우승했습니다.

프로그래밍 요구 사항

  • 모든 로직에 단위 테스트를 구현한다.
    • 단, UI(println 등) 로직은 제외
    • 핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.
    • UI 로직을 InputView, ResultView와 같은 클래스를 추가해 분리한다.
  • 함수(또는 메소드)의 길이가 10라인을 넘어가지 않도록 구현한다.
    • 함수(또는 메소드)가 한 가지 일만 잘 하도록 구현한다.
  • 기능을 구현하기 전 README.md 파일에 구현할 기능 목록을 정리해 추가한다.
  • git의 commit 단위는 README.md 파일에 정리한 기능 목록 단위로 추가한다.

힌트

  • 사용자가 입력한 이름의 숫자 만큼 자동차 대수를 생성한다.
  • 자동차는 자동차 이름과 위치 정보를 가지는 Car 객체를 추가해 구현한다.

Stacked Pull requests

PR 이 길고 장황해지면, 리뷰어가 코드를 읽고 이해하기 너무 어려워진다. 작은 단위로 메서드와 클래스를 나누는 것 만큼, 커밋과 PR 을 나누는 것에 대해서도 고민해보자.