- 미션은 기능 요구 사항, 입출력 요구 사항, 프로그래밍 요구 사항 세 가지로 구성되어 있습니다.
- 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현합니다.
- 테스트 패키지 설치를 위해 Node.js 버전 18.17.1 이상이 필요합니다.
- 다음 명령어를 입력해 패키지를 설치합니다.
npm install
- 설치가 완료되었다면, 다음 명령어를 입력해 테스트를 실행합니다.
npm test
이 게임에서는 컴퓨터와 가위바위보 대결을 펼치게 됩니다. 게임의 규칙과 진행 방식은 다음과 같습니다.
사용자는 컴퓨터와 가위바위보 게임을 진행하며 정해진 횟수만큼 컴퓨터를 이기면 승리합니다. 컴퓨터는 무작위로 가위, 바위, 보 중 하나를 선택하고, 사용자는 가위, 바위, 보 중 하나를 입력해 승패를 가립니다.
- 사용자는 게임에서 이겨야 할 횟수를 선택합니다. 이 횟수는 최대 5회 이하로 설정할 수 있습니다.
- 게임이 시작되면, 컴퓨터는 무작위로 가위, 바위, 보 중 하나를 선택합니다.
- 사용자는 가위, 바위, 보 중 하나를 선택하여 입력합니다.
- 컴퓨터와 사용자의 선택을 비교하여 승패를 가립니다. 승패 규칙은 다음과 같습니다.
- 가위 vs 보 → 가위 승리
- 바위 vs 가위 → 바위 승리
- 보 vs 바위 → 보 승리
- 만약 같은 선택을 하면 무승부로 처리됩니다.
- 사용자가 이겨야 하는 횟수만큼 승리하면 게임이 종료됩니다.
- 만약 사용자가 잘못된 입력을 하면
[ERROR]
로 시작하는 메시지를 가지는 예외가 발생하며, 게임은 즉시 종료됩니다.
[ERROR] 잘못된 입력입니다.
- 게임에서 이겨야 할 횟수 입력
승리를 위한 횟수를 입력하세요: 3
- 가위, 바위, 보 중 하나의 문자열 입력
가위, 바위, 보 중 하나를 입력하세요: 가위
- 게임 시작 문구 출력
가위바위보 게임을 시작합니다.
- 각 차수별 실행 결과
# 컴퓨터가 승리한 경우
상대방은 가위를 제출했습니다. 상대방이 승리했습니다!
# 사용자가 승리한 경우
상대방은 가위를 제출했습니다. 당신이 승리했습니다!
# 무승부인 경우
상대방은 가위를 제출했습니다. 무승부입니다!
- 게임 승리 문구 출력
가위바위보 게임을 승리했습니다! 게임 종료
가위바위보 게임을 시작합니다.
승리를 위한 횟수를 입력하세요: 1
가위, 바위, 보 중 하나를 입력하세요: 가위
상대방은 바위를 제출했습니다. 상대방이 승리했습니다!
가위, 바위, 보 중 하나를 입력하세요: 바위
상대방은 바위를 제출했습니다. 무승부입니다!
가위, 바위, 보 중 하나를 입력하세요: 보
상대방은 바위를 제출했습니다. 당신이 승리했습니다!
가위바위보 게임을 승리했습니다! 게임 종료
- Node.js 18.17.1 버전에서 실행 가능해야 합니다.
- 프로그램 실행의 시작점은
index.js
입니다. 아래와 같이 프로그램을 실행합니다.
# coduo-javascript-rps/src
node index.js
utils
폴더에서 제공하는Random
및Console
객체를 사용하여 구현해야 합니다.- Random 값 추출은
Random.getRandomRPS
를 활용합니다. - 사용자의 값을 입력 받고 출력하기 위해서는
Console.readLineAsync, Console.print
를 활용합니다.
- Random 값 추출은
- 파일, 패키지 이름을 수정하거나 이동하지 않습니다.
package.json
을 변경할 수 없고 외부 라이브러리(jQuery, Lodash 등)를 사용하지 않습니다.- 프로그램 종료 시
process.exit()
를 호출하지 않습니다.