Skip to content

[자동차 경주] 장종현 미션 제출합니다. #59

Open
jongchang wants to merge 12 commits into
woowacourse-precourse:mainfrom
jongchang:jongchang
Open

[자동차 경주] 장종현 미션 제출합니다. #59
jongchang wants to merge 12 commits into
woowacourse-precourse:mainfrom
jongchang:jongchang

Conversation

@jongchang
Copy link
Copy Markdown

자동차 경주

구현할 기능 목록

1. 자동차 이름 입력 기능

  • "경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)" 메시지를 출력
  • camp.nextstep.edu.missionutils.Console.readLine()을 통해 자동차 이름을 입력받기

2. 입력된 자동차 이름의 유효성 검토 기능

  • 입력된 이름을 쉼표(,) 기준으로 분리
  • 각 이름이 5자 이하인지 검증
  • 이름이 5자를 초과하거나, 이름이 비었을 경우 IllegalArgumentException을 발생

2. 시도 횟수 입력 기능

  • "시도할 횟수는 몇 회인가요?" 메시지를 출력
  • camp.nextstep.edu.missionutils.Console.readLine()을 통해 시도 횟수를 입력받기

3. 입력된 시도 횟수의 유효성 검토 기능

  • 입력된 값이 0 이상의 정수인지 검증
  • 정수가 아니거나 0 미만의 값일 경우 IllegalArgumentException을 발생

4. 자동차 객체 구현

  • 자동차는 이름(name)과 전진한 위치(position) 정보를 가짐
  • position은 0으로 초기화

5. 자동차 전진 로직 구현

  • camp.nextstep.edu.missionutils.Randoms.pickNumberInRange(0, 9) 를 사용하여 랜덤값 추출
  • 무작위 값이 4 이상일 경우 position을 +1 증가 (전진)
  • 무작위 값이 4 미만일 경우 position을 유지 (멈춤)

6. 차수별 실행 결과 출력 기능

  • "실행 결과" 메시지를 출력
  • 시도 횟수만큼 전체 자동차의 전진 로직을 반복 실행
  • 매 차수마다 "{이름} : {전진한 위치}" 형식으로 전체 자동차의 현재 위치 상태를 출력 ex) jongchang : --

7. 최종 우승자 판별 및 출력 기능

  • 가장 많이 전진한 자동차를 우승자로 판별 (가장 높은 position 값)
  • 우승자가 1명일 경우: 최종 우승자 : jongchang 형식으로 출력
  • 우승자가 2명 이상일 경우: 최종 우승자 : jongchang, jomir (쉼표로 구분) 형식으로 출력

README에 구현할 기능 목록을 정리해 추가합니다.
Console API를 사용하여 사용자의 자동차 이름 입력을 받습니다.
입력된 자동차 이름에 대한 유효성 검토 기능을 구현합니다.
Console API를 사용하여 사용자의 시도 횟수 입력을 받습니다.
입력된 시도 횟수에 대해 유효성을 검증하는 기능을 구현합니다.
자동차의 이름과 위치를 저장할 Car data class를 정의합니다.
매 시도마다의 랜덤값에 따른 Car 객체의 전진 메서드를 구현합니다.
시도 횟수만큼 경주를 실행하고 각 시도별 경주 현황을 출력하는 기능을 구현합니다.
runRace 함수 내의 자동차 이동 및 결과 출력 로직을 별도 함수로 분리합니다.
최종 우승자를 판별하고 출력하는 기능을 구현합니다.
최종 우승자를 판별하는 로직을 Kotlin 컬렉션 API를 사용하도록 리팩토링합니다.
자동차 경주에 대한 테스트 케이스를 추가합니다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant