기본적으로 1부터 9까지 서로 다른 수 혹은 알파벳으로로 이루어진 임의의 길이의 문자를 맞추는 게임이다.
- 게임을 시작하면서 숫자 혹은 알파벳 야구 게임을 할지 결정할 수 있다.
- 게임을 시작하면서 정답의 길이를 정할 수 있다.
- 예) 123 -> 3자리, abcd -> 4자리
- 같은 문자가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 문자가 전혀 없으면 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 문자를 맞추면 승리한다.
- 상대방(컴퓨터)의 수가 425일 때
- 123을 제시한 경우 : 1스트라이크
- 456을 제시한 경우 : 1볼 1스트라이크
- 789를 제시한 경우 : 낫싱
- 상대방(컴퓨터)의 알파벳이 fire일 때
- abcd를 제시한 경우 : 낫싱
- efgh를 제시한 경우 : 2볼
- hijk를 제시한 경우 : 1스트라이크
- 상대방(컴퓨터)의 수가 425일 때
- 위 컴퓨터 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 혹은 알파벳을 미리 입력된 숫자만큼 선택한다. 게임 플레이어는 컴퓨터가 생각하고 있는 문자를 입력하고, 컴퓨터는 입력한 문자에 대한 결과를 출력한다.
- 이 같은 과정을 반복해 컴퓨터가 선택한 미리 입력된 길이 만큼의 문자를 모두 맞히면 게임이 종료된다.
- 게임을 종료한 후 게임을 다시 시작하거나 완전히 종료할 수 있다.
- 사용자는 중간에 게임을 포기할 수 있다. 게임 포기 시 포기 전까지의 게임 결과를 보여준다.
- 사용자가 잘못된 값을 입력할 경우
IllegalArgumentException
를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.Exception
이 아닌IllegalArgumentException
,IllegalStateException
등과 같은 명확한 유형을 처리한다.
- 게임 시작 시 숫자/알파벳 야구를 구분하는 1과 2 중 하나의 수
- 정답의 길이
- 정답의 길이는 2보다 작을 수 없다.
- 서로 다른 게임 길이 만큼의 숫자 혹은 알파벳
- 게임이 끝난 경우 재시작/종료를 구분하는 1과 2 중 하나의 수
- 입력한 수에 대한 결과를 볼, 스트라이크 개수로 표시
1볼 1스트라이크
- 하나도 없는 경우
낫싱
- 3개의 숫자를 모두 맞힐 경우(정답의 길이가 3일때)
3스트라이크
3개의 숫자를 모두 맞히셨습니다! 게임 종료
- 3개의 알파벳을 모두 맞힐 경우(정답의 길이가 3일때)
3스트라이크
3개의 알파벳을 모두 맞히셨습니다! 게임 종료
- 숫자 야구 게임 시작 문구 출력
숫자 야구 게임을 시작합니다.
- 알파벳 야구 게임 시작 문구 출력
알파벳 야구 게임을 시작합니다.
- 게임 종료 시 정답을 출력한다.
<정답>
713
- 게임 종료 시 시도 횟수를 출력한다.
<던진 횟수>
5
- 게임 종료 시 시도한 문자들의 목록을 출력한다.
<게임 내용>
123
145
671
216
713
- 게임을 중도에 포기할 시 메시지를 출력한다.
게임을 포기하셨습니다.
- 예외 상황 시 에러 문구를 출력해야 한다. 단, 에러 문구는 "[ERROR]"로 시작해야 한다.
[ERROR] 올바른 게임 유형 입력이 아닙니다.
숫자 야구를 시작하려면 1, 알파벳 야구를 시작하려면 2를 입력하세요.
1
정답의 길이를 설정하세요. (예시: 123 -> 길이 3 / abcd -> 길이 4)
3
숫자 야구 게임을 시작합니다.
!를 입력해 게임을 포기할 수 있습니다.
숫자를 입력해주세요 : 123
1볼 1스트라이크
숫자를 입력해주세요 : 145
1볼
숫자를 입력해주세요 : 671
2볼
숫자를 입력해주세요 : 216
1스트라이크
숫자를 입력해주세요 : 713
3스트라이크
3개의 숫자를 모두 맞히셨습니다! 게임 종료
게임 결과
<정답>
713
<던진 횟수>
5
<게임 내용>
123
145
671
216
713
게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.
1
숫자 야구를 시작하려면 1, 알파벳 야구를 시작하려면 2를 입력하세요.
1
정답의 길이를 설정하세요. (예시: 123 -> 길이 3 / abcd -> 길이 4)
3
숫자 야구 게임을 시작합니다.
!를 입력해 게임을 포기할 수 있습니다.
숫자를 입력해주세요 : 123
1볼
...
숫자 야구를 시작하려면 1, 알파벳 야구를 시작하려면 2를 입력하세요.
2
정답의 길이를 설정하세요. (예시: 123 -> 길이 3 / abcd -> 길이 4)
4
알파벳 야구 게임을 시작합니다.
!를 입력해 게임을 포기할 수 있습니다.
알파벳을 입력해주세요 : abcd
낫싱
알파벳을 입력해주세요 : efgh
1볼
알파벳을 입력해주세요 : jklm
1볼
알파벳을 입력해주세요 : !
게임을 포기하셨습니다.
게임 결과
<정답>
gjrs
<던진 횟수>
3
<게임 내용>
abcd
efgh
jklm
게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.
2
...