Skip to content

eorb6502/java-baseball-precourse

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

숫자야구 게임 명세서


📌 개요

숫자야구 게임은 컴퓨터가 생성한 서로 다른 3자리 숫자를 플레이어가 맞히는 게임입니다. 플레이어의 입력에 대해 스트라이크(Strike)볼(Ball) 개수를 판정하며, 3 스트라이크가 되면 게임이 종료됩니다.


🧩 주요 클래스 구성

1. controller.GameManager

  • 게임 전체 흐름과 Phase 전환을 관리
  • 사용자 입력 검증 및 재입력 루프 처리

2. model.NumberGenerator

역할

  • 게임에서 사용할 숫자 생성

규칙(현재 구현 기준)

  • 숫자 범위: 1 ~ 8
  • 생성 개수: 3개
  • 모든 숫자는 서로 달라야 함

3. model.JudgeManager

역할

  • 사용자 입력값과 생성된 숫자를 비교하여 결과 판정

판정 내용

  • 스트라이크(Strike) 개수
  • 볼(Ball) 개수
  • 스트라이크 + 볼 = 0 인 경우 낫씽 출력

4. view.InputManager

역할

  • 콘솔에서 사용자 입력 수신 (Scanner.next() 사용)

5. view.OutputManager

역할

  • Phase 시작 메시지, 에러 메시지, 판정 결과 출력

🔄 Phase 구성 및 흐름

1. 시작 단계

  • 프로그램은 GENERATE_NUMBER Phase에서 시작
  • 최초 실행 시 시작 안내 메시지는 출력되지 않고 바로 숫자 입력을 요청

2. GENERATE_NUMBER

설명

  • 게임 시작 시 숫자를 생성하는 Phase

동작

  1. NumberGenerator.generateNumber()로 숫자 생성
  2. 생성 후 INPUT_NUMBER Phase로 이동

3. INPUT_NUMBER

설명

  • 사용자로부터 숫자를 입력받는 Phase

검증 조건

  • 입력 길이가 3인가?
  • 모든 입력이 1 ~ 9 사이의 숫자인가?
  • 모든 입력 값이 서로 다른가?

분기 처리

  • 입력이 적절한 경우
    • 입력값 저장
    • JUDGE_RESULT Phase로 이동
  • 입력이 부적절한 경우
    • 에러 메시지 출력
    • INPUT_NUMBER Phase 유지

4. JUDGE_RESULT

설명

  • 입력값을 판정하고 결과를 출력하는 Phase

분기 처리

  • 결과가 3 Strike인 경우
    • 축하 메시지 출력
    • IDLE Phase로 이동
  • 그 외의 경우
    • 결과 출력
    • INPUT_NUMBER Phase로 이동

5. IDLE

설명

  • 게임을 새로 시작하거나 종료를 선택하는 Phase

분기 처리

  • 1 입력: GENERATE_NUMBER Phase로 이동 (새 게임)
  • 2 입력: 프로그램 종료
  • 그 외 입력: 에러 메시지 출력 후 재입력

🧾 출력 메시지

  • 입력 요청: 숫자를 입력해주세요 :
  • 잘못된 숫자 입력: 1 ~ 9 사이의 중복되지 않는 세 자리 숫자를 입력해주세요.
  • 게임 재시작/종료 선택: 게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.
  • 정답: 3개의 숫자를 모두 맞히셨습니다! 게임 끝

🏁 게임 종료 조건

  • IDLE Phase에서 2를 입력하면 프로그램 종료

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%