컴퓨터가 1에서 9까지의 서로 다른 임의의 수 3개를 선택하면, 사용자가 그 숫자를 맞추는 게임입니다.
입력한 숫자에 대한 결과(볼, 스트라이크, 낫싱)를 힌트로 얻어 컴퓨터의 수를 모두 맞추면 승리합니다.
-
랜덤 숫자 생성: 1에서 9까지 서로 다른 임의의 수 3개를 선택하여 저장한다.
-
재시작/종료 입력: 게임 종료 후 재시작(1) 또는 종료(2)를 구분하는 숫자를 입력받는다.
-
사용자 숫자 입력: 사용자가 예측한 숫자 값을 입력
-
입력값 예외 처리: 사용자가 잘못된 값을 입력했는지 검증한다.
- 숫자가 아닌 값이 포함된 경우
- 3자리가 아닌 경우
- 1~9 사이의 숫자가 아닌 경우 (0 포함 시)
- 중복된 숫자가 있는 경우
-
판정 로직: 컴퓨터의 수와 사용자의 수를 비교하여 결과를 계산한다.
- 같은 수가 같은 자리에 있으면 스트라이크
- 같은 수가 다른 자리에 있으면 볼
- 같은 수가 전혀 없으면 낫싱
-
랜덤 숫자 생성 테스트: 3자리의 서로 다른 숫자가 올바르게 생성되어야 함.
- 생성된 숫자가 3자리인지 확인
- 예: 12, 1234
- 3개 숫자 중 동일한 숫자가 존재
- 예: 112, 1233, 333
- 생성된 숫자에 0 존재
- 예: 012, 0123
- 생성된 숫자가 3자리인지 확인
-
재시작/종료 입력 테스트: 사용자는 1 또는 2를 입력해야 함.
- 1, 2를 제외한 다른 숫자를 입력
- 예: 0, 12
- 문자 입력
- 예: kakao
- 1, 2를 제외한 다른 숫자를 입력
-
사용자 숫자 입력 테스트: 사용자는 서로 다른 3개의 숫자를 입력해야 함.
- 3자리가 아닌(2자리, 4자리 이상 등) 숫자 입력
- 예: 12, 1234
- 입력한 3개 숫자 중 동일한 숫자가 존재
- 예: 112, 1233, 333
- 입력한 숫자에 0 존재
- 예: 012, 0123
- 문자 입력
- 예: kakao
- 3자리가 아닌(2자리, 4자리 이상 등) 숫자 입력
-
판정 로직 테스트: 사용자의 입력 값과 실제 값을 올바르게 판정해야 함.
- 여러가지 상황에서 스트라이크, 볼, 낫싱 비교 결과가 일치 (댜양한 case를 만들어보아야 함)
- 예: 428, 624, 921 등..
- 여러가지 상황에서 스트라이크, 볼, 낫싱 비교 결과가 일치 (댜양한 case를 만들어보아야 함)