Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

11 Commits

Folders and files

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages