Skip to content

next-step/java-racingcar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

자동차 경주 게임

진행 방법

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

온라인 코드 리뷰 과정

구현할 기능 목록

step2

  • 사용자가 몇 대의 자동차로 몇 번의 이동을 할 것인지 입력하는 기능
  • (추가) 자동차의 속성 정의
  • 입력받은 자동차 수에 따라 자동차를 생성하는 기능
  • 생성된 자동차를 화면에 출력하는 기능
  • 자동차의 전진 여부를 무작위으로 결정하는 기능
  • 자동차가 전진 할 경우 화면에 출력될 변화를 설정하는 기능
  • 입력받은 실행 횟수에 따라 경주를 실행하는 기능
  • 실행 결과를 화면에 출력하는 기능
  • (추가) 구조 리팩토링

step3

  • 자동차 이름들을 입력하여 자동차 대수를 결정
    • 자동차 객체에 carName 필드 추가
    • 자동 이름 입력하는 UI 추가
    • 입력받은 자동차 이름들을 ','로 구분해서 배열/리스트로 저장
    • 자동차 이름들(CarNames) 일급콜렉션 클래스 추가
    • 입력된 자동차 이름들(또는 배열/리스트의 길이) 만큼 자동차 대수 생성하도록 수정
      • 테스트 코드
    • 자동차 이름 입력 유효성 체크
      • 테스트 코드
  • 경주완료 후 우승자 선정 및 출력
    • 우승자들(Winners) 일급콜렉션 클래스 추가
    • 우승자 선정 로직 추가
      • 테스트 코드

step4

2주차 수업시간에 배운 TDD로 리팩토링 도전

  • 기존의 모든 코드 삭제
  • 테스트 코드 작성 (CarTest)
    • Car 객체 생성
      • 자동차 이름(name), 위치(position) 속성 추가
    • Car 객체의 원시값인 멤버변수(name, position)를 객체로 분리하여 포장
      • 테스트 코드 작성 (NameTest)
      • 테스트 코드 작성 (PositionTest)
    • 자동차 전진(move) 기능 추가
  • 테스트 코드 작성 (CarNamesTest)
    • CarNames 객체 생성
    • 입력값 변환하여 저장 (String -> List)
    • 정적 팩토리 메서드(from) 추가
    • CarNames 객체를 일급컬렉션으로 변경 및 테스트
  • 테스트 코드 작성 (CarsTest)
    • Cars 일급컬렉션 생성
    • 정적 팩토리 메서드(of) 추가
  • 테스트 코드 작성 (RoundTest)
    • Round 객체 생성
    • 정적 팩토리 메서드(from) 추가
  • Car 객체에 자동차 전진 결정 메서드 추가
    • 테스트 코드 작성 (CarTest)
  • Controller 생성
  • RandomNumber 생성 기능 추가
    • 테스트 코드 작성 (RandomNumberTest)
    • RandomNumber 객체 생성
    • 정적 팩토리 메서드(generate) 추가
  • 테스트 코드 작성 (WinnersTest)
    • Winners 일급컬렉션 생성
    • 정적 팩토리 메서드(from) 추가
    • 우승자 선정 로직 추가
  • View 생성
    • InputView 생성
    • OutPutView 생성
  • 어플리케이션 실행 테스트

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8