- 기능을 구현하기 전에
docs/README.md
에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.
-
사용자는 플레이어의 이름을 입력 할 수 있다.
- 이름은 최소 2글자 최대 10글자로 제한한다.
-
사용자는 플레이어의 소지금을 입력할 수 있다.
- 소지금은 100원 단위로 제한한다.
- 소지금은 항상 0보다 크거나 같아야 한다.
-
사용자는 주사위 굴릴 횟수(최소 2, 최대 10)를 입력 할 수 있다.
-
사용자는 주사위 값의 예상 평균치의 범위를 입력 할 수 있다.
-
사용자는 배팅 금액을 입력 할 수 있다.
- 배팅 금액 만큼 소지금에서 차감된다.
-
사용자가 입력한 횟수 만큼 주사위가 굴려지고, 평균값을 계산한 출력한다.
- 평균 값은 소수점 이하 한자리까지 표기한다.
-
주사위의 평균값이 사용자의 예측 범위 안에 있는 경우 사용자는 상금을 받는다.
- 상금은 소지금에 추가된다.
- 예측 범위에 따른 배당
- 1이상 2미만 : 3배
- 2이상 3미만 : 2배
- 3이상 4미만 : 1배
- 4이상 5미만 : 2배
- 5이상 6미만 : 3배
- 6 : 5배
- 시도 횟수에 따른 배당
- (시도 횟수 - 1) * 0.1
- 예시) 3회 시도 시, 0.2
- 총 배당 = 예측 범위 배당 + 시도 횟수 배당
- 예시)
- 시도 횟수 5회(0.4), 예측 범위 4 이상 5 미만(2.0) => 총 배당 : 2.4배
-
사용자의 최종 소지금을 출력한 뒤 종료한다.
-
사용자가 잘못된 값을 입력하는 경우
[ERROR]
로 시작하는 메시지를 출력한 뒤, 잘못 입력된 입력부터 다시 받는다.
주사위 게임을 시작합니다.
플레이어 이름을 입력해주세요.
polo
플레이어의 소지금을 입력해주세요.
10000
주사위를 굴릴 횟수를 입력해주세요.
7
배팅옵션을 선택해주세요.
1. 1이상 2미만
2. 2이상 3미만
3. 3이상 4미만
4. 4이상 5미만
5. 5이상 6미만
6. 6
3
배팅금액을 입력해주세요.
8000
배팅 결과
배팅 금액 : 8000
배당 : 1.6
예상 상금 : 12800
1 회차 주사위 결과 : 6
2 회차 주사위 결과 : 3
3 회차 주사위 결과 : 1
4 회차 주사위 결과 : 5
5 회차 주사위 결과 : 6
6 회차 주사위 결과 : 3
7 회차 주사위 결과 : 5
최종 결과
플레이어 : polo
최종 소지금 : 2000
주사위 평균 : 4.1
주사위 게임을 시작합니다.
플레이어 이름을 입력해주세요.
polo
플레이어의 소지금을 입력해주세요.
a
[ERROR] 숫자만 입력가능합니다.
플레이어의 소지금을 입력해주세요.
!
[ERROR] 숫자만 입력가능합니다.
플레이어의 소지금을 입력해주세요.
10000
// 이하 동일
typescript
를 사용한다.- 외부 라이브러리는 사용하지 않는다. (npm dependency 추가 금지)
- indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.
- 함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라.
- 함수(또는 메소드)의 길이가 15라인을 넘어가지 않도록 구현한다.
- 함수(또는 메소드)가 한 가지 일만 잘 하도록 구현한다.