Skip to content

자동차 경주용 게임을 관리하는 저장소

Notifications You must be signed in to change notification settings

0hun/java-racingcar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

자동차 경주 게임

진행 방법

  • 자동차 경주 게임 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
  • 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
  • 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.

온라인 코드 리뷰 과정

##프로그래밍 요구사항

  • 모든 로직에 단위 테스트를 구현한다. 단, UI(System.out, System.in) 로직은 제외
  • 핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.
  • UI 로직을 InputView, ResultView와 같은 클래스를 추가해 분리한다.
  • 자바 코드 컨벤션을 지키면서 프로그래밍한다.
  • else 예약어를 쓰지 않는다.
  • 힌트: if 조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.
  • else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다.

미션 분석

3단계

요구사항 정리

  • 입력은 자동차의 수, 이동 횟수
  • 출력 시점은 정해져 있지 않으며, 라인에 따라 '-'으로 나타낸다.
  • 자동차는 무작위 결과에 따라 이동할 수도, 가만히 있을 수도 있다.

구현할 사항

  • 입력
    • InputView 클래스에서 자동차의 수와 이동 횟수를 입력 받는다.
    • 자동차의 수, 움직임의 수를 각각 정수로 입력
    • 음수, 정수가 아닌 문자, null 등 validation 처리
  • 출력
    • 자동차의 실시간 위치 출력한다.(자동차 객체에 저장된 위치를 가져와서 출력)
    • ResultView 클래스에서 자동차가 이동하는 라인을 출력한다.
  • 자동차
    • 위치 정보(현재 위치 및 이동한 위치 저장한다.)
    • 이동 기능(현재 위치에서 이동한다.)
    • 무작위로 이동(0 ~ 9사이 랜덤 값을 구한 후 랜덤 값이 4이상일 경우에 이동한다.)
    • 이동 경로를 생성(이동할 때 마다 이동 경로 문자열을 생성하여 저장한다.)
    • 전진 또는 멈출지 선택한다.

About

자동차 경주용 게임을 관리하는 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published