Skip to content

seahkeem/javascript-racingcar-8

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

javascript-racingcar-precourse

초간단 자동차 경주 게임을 구현한다.

구현할 기능 목록

1. 입력 처리 및 유효성 검증

  • 입력 요청: 사용자로부터 경주할 자동차 이름 목록을 입력받는다.
  • 입력 요청: 사용자로부터 시도할 횟수를 입력받는다.
  • 오류 처리: 자동차 이름이 5자를 초과하는 경우 [ERROR] 자동차 이름은 5자 이하만 가능합니다.
  • 오류 처리: 이름이 비어 있거나, 중복된 이름이 있는 경우 [ERROR] 자동차 이름 목록이 유효하지 않습니다.
  • 오류 처리: 시도 횟수가 양의 정수가 아닌 경우 [ERROR] 시도 횟수는 양의 정수만 가능합니다.

2. 게임 진행

  • 위치 저장: 자동차의 이름과 현재 위치를 저장하고 관리한다.
  • 랜덤 값 추출: 무작위 값을 추출한다.
  • 전진: 무작위 값이 4 이상일 경우 위치를 1 증가시킨다.
  • 전체 턴 실행: 입력된 횟수만큼 모든 자동차에 대해 전진 로직을 반복 수행하고, 턴별 실행 결과를 저장한다.

3. 위치 계산 및 우승자 판별

  • 최대 위치 계산: 레이스가 끝난 후 모든 자동차 중 최대 전진 거리를 찾는다.
  • 우승자 판별: 최대 위치와 동일한 위치를 가진 자동차를 모두 선정한다.

4. 결과 출력

  • 차수별 실행 결과 출력: 매 턴마다 {자동차 이름} : {위치} 형태(-개수)로 중간 결과를 출력한다.
  • 결과 출력: 우승자가 여러 명일 경우 쉼표로 구분하여 최종 우승자 : {자동차 이름} 형태로 출력한다.
  • 오류 출력: [ERROR] {메시지} 출력 후 프로그램을 종료한다.

에러 및 예외 처리 목록

구분 상황 처리 방식
[ERROR] 자동차 이름이 5자를 초과하는 경우(seahkeem) [ERROR] 자동차 이름은 5자 이하만 가능합니다.
[ERROR] 자동차 이름이 비어있는 경우
중복된 이름이 있을 경우
[ERROR] 자동차 이름 목록이 유효하지 않습니다.
[ERROR] 시도 횟수가 양의 정수가 아닌 경우 (0, -1, a) [ERROR] 시도 횟수는 양의 정수만 가능합니다: 0

프로그래밍 및 테스트 요구사항

분류 상세 내용
코드 원칙 indent depth를 2 이하로 유지하고, 3항 연산자 사용을 금지하며, 함수(메서드)는 **단일 책임(SRP)**을 지키도록 구현한다.
커밋 원칙 Git 커밋 단위는 기능 목록 단위로 작성하며, AngularJS Commit Convention을 준수한다.
라이브러리 MissionUtils의 Random 및 Console API만 사용하며, 외부 라이브러리 사용을 금지한다.
테스트 Jest를 사용하여 모든 기능과 모든 예외 상황에 대한 단위 테스트를 구현한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%