/java-racingcar-precourse

자동차 경주 미션을 위한 저장소

Primary LanguageJava

자동차 경주 게임

진행 방법

  • 자동차 경주 게임 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 과제를 제출한다.

과제 제출 과정

Todo

Done

  • 사용자는 자동차 이름을 입력할 수 있다.

    • 자동차 이름은 5 글자 이하여야 한다.
    • 자동차 이름은 중복될 수 없다.
  • 사용자는 자동차의 이동횟수를 입력할 수 있다.

    • limit은 5자리
  • 각 자동차의 이동을 결정할 0~9 사이의 random 값을 구한다.

    • random값은 정수형
  • random값이 4이상일 경우 전진, 3이하의 값이면 멈춘다.

  • 모든 이동이 끝난 뒤 가장 많이 이동한 자동차가 우승한다.

  • 자동차 이름 입력은 "경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."을 출력하고 다음 라인에 사용자 입력을 받는다.

    • 입력이 오류일 경우 Error 메시지를 출력한다.
    • Error 메시지 출력 후 입력을 다시 요구한다.
  • 이동횟수는 "시도할 회수는 몇회인가요?"를 출력하고, 다음 라인에 사용자 입력을 받는다.

    • 입력이 오류일 경우 Error 메시지를 출력한다.
    • Error 메시지 출력 후 입력을 다시 요구한다.
  • 각 회차에서 이동현황을 콘솔에 출력한다.

  • 경기가 끝나고 "[우승자1], [우승자2]가 최종 우승했습니다" 형식으로 우승자를 콘솔 출력한다.

설계

자동차

  • 자동차는 5글자 이하의 이름을 가진다.
  • 자동차는 현재 위치를 가진다.

예시

경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분). pobi,crong,honux 시도할 횟수는 몇회인가요? 5

실행 결과 pobi : - crong : - honux : -

pobi : -- crong : - honux : --

pobi : --- crong : -- honux : ---

pobi : ---- crong : --- honux : ----

pobi : ----- crong : ---- honux : -----

pobi : ----- crong : ---- honux : -----

pobi, honux가 최종 우승했습니다.

문자열 덧셈 계산기

Todo

  • Calculator는 String을 입력받는다
  • Parser는 String을 받아 유효한 입력인지 검사한다
  • 문자열은 다음과 같은 조건을 만족해야 한다
    • 구분자
      • 기본 구분자는 ,와 :이다
      • 문자열의 맨 앞에 "//"와 "\n" 사이에 커스텀 구분자를 입력할 수 있다
    • 문자열 형식
      • 두 숫자 사이에 구분자를 적는다
      • 커스텀 구분자를 사용하는 경우 문자열 맨 앞에 정의를 적는다
      • 숫자 이외의 값 또는 음수를 입력하는 경우 RuntimeException을 던진다
      • 빈 문자열 혹은 null값을 입력받을 수 있다
  • 문자열이 유효한 경우 Integer List를 반환한다
  • Calculator는 Parser에게 Integer List를 전달받아 덧셈 결과를 반환한다

Done