suntisfied / java-baseball-6_plus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

미션 - 컴퓨터 야구 Plus

🚀 기능 요구 사항

기본적으로 1부터 9까지 서로 다른 수 혹은 알파벳으로로 이루어진 임의의 길이의 문자를 맞추는 게임이다.

  • 게임을 시작하면서 숫자 혹은 알파벳 야구 게임을 할지 결정할 수 있다.
  • 게임을 시작하면서 정답의 길이를 정할 수 있다.
    • 예) 123 -> 3자리, abcd -> 4자리
  • 같은 문자가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 문자가 전혀 없으면 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 문자를 맞추면 승리한다.
    • 상대방(컴퓨터)의 수가 425일 때
      • 123을 제시한 경우 : 1스트라이크
      • 456을 제시한 경우 : 1볼 1스트라이크
      • 789를 제시한 경우 : 낫싱
    • 상대방(컴퓨터)의 알파벳이 fire일 때
      • abcd를 제시한 경우 : 낫싱
      • efgh를 제시한 경우 : 2볼
      • hijk를 제시한 경우 : 1스트라이크
  • 위 컴퓨터 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 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
...

About


Languages

Language:Java 100.0%