자동차가 조건에 따라 라운드 별로 전진하여 최종적으로 가장 많은 전진한 자동차가 승리
- 사용자가 게임 횟수를 입력받고, 입력 값이 유효하지 않은 경우에는 "[ERROR]" 메시지를 출력하며 애플리케이션이 종료되어야 한다.
- 각 라운드마다 n대의 자동차는 0에서 9 사이의 랜덤 값을 기반으로 전진(랜덤 값이 4 이상일 경우) 또는 멈춘다.
- 각 라운드 실행 결과를 출력할 때, 자동차 이름과 전진 상태를 함께 출력한다. (예: "pobi : ---")
- 게임이 완료된 후, 최종 우승자를 출력한다. 한 명 이상의 우승자가 있을 경우에는 쉼표로 구분하여 출력한다.
-
입력받기
- 경주할 자동차 이름(이름은 쉼표(,) 기준으로 구분)
- 시도할 횟수: 숫자(1 이상 정수)
- 사용자가 잘못된 값을 입력할 경우 "[ERROR]"로 시작하는 메시지와 함께 에러 발생 후 애플리케이션 종료
- 입력 조건
- 자동차 이름은 5자 이하만 허용 (초과 시 [ERROR] 출력 및 종료)
pobi,woni,jun,car12345 // 이름이 5자를 초과한 경우 [ERROR] 이름은 5자 이하만 가능합니다. - 중복된 이름 금지 (중복 시 [ERROR] 출력 및 종료)
pobi,woni,jun,pobi // 이름 중복 발생 [ERROR] 중복된 이름이 있습니다. - 시도 횟수에 문자, 0 이하, 소수 입력 시 [ERROR] 출력 및 종료
시도할 횟수는 몇 회인가요? a // 문자가 입력된 경우 [ERROR] 자연수만 입력 가능합니다.
- 자동차 이름은 5자 이하만 허용 (초과 시 [ERROR] 출력 및 종료)
- 출력 예시
경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분) pobi,woni,jun // 입력받는 자동차 이름 시도할 횟수는 몇 회인가요? 5 // 입력 받는 횟수
-
경주 게임
- 입력 받은 자동차를 객체로 만들기
- 쉼표 기준으로 자동차 이름 분리
- 자동차 이름을 키로 하여 초기 상태 저장
- 예시
const raceResult = { pobi: '', woni: '', jun: '' }; for (const car in raceResult) { console.log(`${car} : ${raceResult[car]}`); }
-
전진하기
- 전진, 스탑 정하기
- 각 자동차는 0~9 사이 무작위 값 뽑기
- 4~9 숫자를 뽑은 자동차는 전진
- 0~3 숫자를 뽑은 자동차는 스탑
- 라운드 결과 출력
- 전진하는 자동차는 '-'추가
- 자동차 이름과 함께 결과 출력
- 출력 예시
pobi : - woni : jun : - - 1, 2 과정 횟수 반복
- 실행마다 전진 횟수 누적하기
- 전진, 스탑 정하기
-
최종 우승자 선택
- 전진한 수가 가장 많은 자동차가 승리
- 동점일 경우 여러 우승자 쉼표로 구분
-
출력하기
- ERROR 출력
- 최종 우승자 출력
- 출력 예시
최종 우승자 : pobi, jun