Skip to content

sojeong0202/java-racingcar-7

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-racingcar-precourse

필요한 기능 정리

객체의 역할과 책임

구현 후

  • Input
    • 입력 받기
  • Extractor(인터페이스)
    • [디폴트 메서드] Null 예외와 빈 문자열, 공백 예외 처리
  • CarNameExtractor
    • 쉼표(,)를 기준으로 이름을 나눠 배열로 만들기
  • RoundExtractor
    • 문자열에서 라운드 숫자를 추출하기
    • 문자열이 숫자가 아닐 경우 예외 처리
  • Car
    • 5자 이하의 이름인지 판단 → 예외
    • 이름을 토대로 자동차 생성
    • 전진과 멈춤을 판단(값이 4 이상일 경우 전진)하고 실행
  • Garage
    • 받은 이름 배열을 토대로 자동차 배열 만들기
    • 이름이 중복일 경우 예외 처리
    • 이름이 적어도 2개가 아닐 경우 예외 처리
  • Referee
    • 최종 이동 결과를 받아서 우승자 분석
  • Output
    • 시작 메시지 출력하기
    • 자동차 별 실행 결과를 출력하기
    • 우승자 출력하기
  • Track
    • 프로그램 흐름 제어

객체의 메시지와 협력 시각화


구현 전

  • Input 객체: 입력 받는 역할

    • 자동차 이름 입력 받기
    • 시도 횟수 입력 받기
  • Car 객체

    • 5자 이하의 이름인지 판단 → 예외
    • 이름을 토대로 자동차 생성(자동차가 스스로)
    • 전진과 멈춤을 판단(값이 4 이상일 경우 전진)
    • 전진하기
  • CarExtractor 객체

    • 쉼표(,)를 기준으로 이름을 나눠 배열로 만들기
  • Garage 객체(자동차 일급 컬렉션)

    • 받은 이름 배열을 토대로 자동차 배열 만들기
  • Referee 객체:

    • 시도 횟수가 올바른지 판단 → 예외
    • 자동차한테 이동 횟수 알려주기
    • 자동차에게 최종 이동 결과를 받아서 우승자 분석
  • Output 객체: 출력하는 역할

    • 시작 메시지 출력하기
    • 자동차 별 실행 결과를 출력하기
    • 우승자 출력하기
  • Track 객체: 프로그램 흐름 제어

  • 랜덤 값 뱉는 역할 → 라이브러리 사용

    • 0에서 9 사이에서 무작위 값을 반환

유스케이스

유스케이스명: 경주할 자동차 이름을 입력하면 실행 결과와 함께 우승자를 반환한다.

일차 액터: 사용자

주요 성공 시나리오:

  1. 시스템은 경주할 자동차 이름을 입력하라는 메시지를 출력한다
  2. 사용자가 경주할 자동차의 이름을 입력한다.
  3. 시스템은 시도할 횟수를 묻는다.
  4. 사용자는 시도할 횟수를 입력한다.
  5. 시스템은 각 자동차마다 [전진과 이동]을 횟수만큼 표현하는 방식으로 실행 결과를 사용자에게 보여준다.
  6. 이어 시스템은 이동량을 기준으로 최종 우승자를 사용자에게 알린다.

About

우테코 7기 프리코스 2주차 문제 풀이

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%