Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[자동차 경주] 이창준 미션 제출합니다. #441

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

CWDll
Copy link

@CWDll CWDll commented Oct 28, 2024

과제 설명

  • 입력한 자동차 이름, 횟수를 추출하여 자동차 경주 게임을 구현한다.
  • 각 자동차는 주어진 횟수마다 발생한 0~9 사이 난수를 기준으로, 난수가 4 이상일 때 전진한다.
  • 진행 횟수만큼 실행되면, 우승자(가장 많이 전진한 자동차)를 출력한다. 이때, 우승자는 여러 명일 수 있다.
  • 자동차 이름은 5자 이하만 가능하며, 자동차 이름은 쉼표(,)로 구분한다.
  • 사용자가 잘못된 값을 입력할 경우 "[ERROR]"로 시작하는 메시지와 함께 Error를 발생시킨 후 애플리케이션은 종료되어야 한다.

작업 사항

  • validateCarNames(): 입력된 자동차 이름을 검증하는 함수로, 이름의 길이가 1자 이상 5자 이하인지, 2개 이상의 이름이 입력되었는지 확인하고 유효하지 않은 경우 오류를 발생시킨다.
  • initializeCarPositions(): 자동차 이름 배열을 받아 각 자동차의 위치를 0으로 초기화한다.
  • runRace(): 사용자로부터 입력받은 시도 횟수만큼 반복하여 경주를 진행하고, 각 턴에서 모든 자동차의 이동 여부를 결정하고 이동 결과를 출력한다.
  • moveCar(): 무작위 값이 4 이상일 때 자동차의 위치를 증가시킨다.
  • showCarPosition(): 현재 자동차의 위치를 “-“로 표시하여 출력한다.
  • getWinners(): 모든 시도가 끝난 후 가장 멀리 이동한 자동차를 우승자로 판별하여 우승자 목록을 반환한다.
  • 테스트 케이스
    • 정상 동작 테스트: 정상적인 자동차 이름과 시도 횟수를 입력했을 때 경주가 올바르게 진행되고 우승자가 출력되는지 확인.
    • 예외 테스트: 유효하지 않은 자동차 이름(1자 미만 또는 5자 초과), 잘못된 시도 횟수(음수, 0, 숫자가 아닌 값) 입력 시 “[ERROR]” 메시지와 함께 오류가 발생하는지 확인.
    • 기능 테스트: 무작위 값에 따라 자동차가 전진하거나 멈추는 로직이 정상 작동하는지 검증.

참고 사항

  • 들여쓰기(인덴트) depth는 최대 2로 제한하였으며, depth가 깊어지는 경우 각 기능을 작은 함수로 분리하여 가독성을 높였다.
  • 간단 함수(난수 생성, 값이 4 이상인지 판별, 입력 boolean에 따른 값 증가)는 위 작업사항에 적어놓지 않았지만, 코드 내에 주석으로 설명해 두었다.

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