Skip to content

junseok708/BaseBallGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

숫자 야구 게임 프로젝트

목표

  • 컴퓨터가 생성한 3자리 숫자를 플레이어가 맞추는 게임

기본 요구사항

  • 각 자리는 1-9 사이의 숫자
  • 동일한 숫자는 사용될 수 없다(숫자 중복X)
  • 각 시도에 대해 '스트라이크'와 '볼'의 개수를 출력하여 플레이어가 숫자를 맞출 수 있도록 유도

요구 사항

필수 요구사항

Lv 1. 기본 게임 구현

정답 숫자 생성하기

  • 정답은 서로 다른 3자리 수
  • 각 자리는 1~9 사이의 숫자
  • 동일한 숫자는 사용될 수 없다(정답 숫자 중복 X)

정답을 맞추기 위한 숫자를 입력

  • 서로 다른 3자리 수를 입력 가능
  • 동일한 숫자는 사용될 수 없다(입력 숫자 중복 X)
  • 숫자만 입력 가능(문자 입력 X)

결과값 출력 및 게임 로직 적용

  • 정답과 입력값을 비교해 힌트를 “볼, 스트라이크, 아웃”으로 표시
    • 스트라이크 : 입력값과 정답을 비교 같은 자리, 같은 숫자인 경우
    • 볼 : 숫자는 같지만, 자리는 다른 경우
    • 아웃 : 숫자도, 자리도 다른 경우
  • 입력한 3자리 숫자가 정답과 같은 경우 게임 종료
    • 3 스트라이크이면 정답에 해당
    • 정답일 때, 표시하고 싶은 메세지 지정
  • 올바르지 않은 입력값에 대해서는 오류 문구 출력
    • 입력값이 문자, 중복되는 값처럼 요구사항과 맞지 않을 경우

게임 이어서하기

  • 정답을 맞출 때까지 계속 시도, 정답을 맞추면 축하 메세지 출력

Lv 2. 입력 및 출력 개선

입력값 유효성 검사

  • 3자리 수인지 자릿수 검사
  • 중복된 숫자가 없는지 중복 숫자 검사
  • 입력값에 숫자만 포함되어 있는지 문자 검사
  • 유효하지 않은 값인 경우 “올바르지 않은 입력값입니다.”를 출력

출력 개선

  • 프로그램을 시작할 때 안내문구 출력
    • "환영합니다! 원하시는 번호를 입력해주세요"
    • "1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기"
    • 1번 입력시 ->
    • "< 게임을 시작합니다 >"
    • "숫자를 입력하세요"
  • 프로그램 시작 및 정답을 맞춘 경우 안내 문구 출력

도전 요구사항

Lv 3. 추가 기능 및 개선

게임 기록 통계

-지금 시도하는 게임이 몇 번째 게임인지 기록

  • 사용자가 정답을 맞힐 때까지의 “시도 횟수”를 기록하고 게임이 끝났을 때, 총 시도 횟수를 출력
  • 2번 게임 기록 보기 입력시
    • "< 게임 기록 보기 >"
    • 1번째 게임 : 시도 횟수 - 14 ...

출력 개선

  • 실행 및 정답을 맞힌 경우, 표시되는 안내문구 선택지 개선
    • 3번 종료하기 입력시 게임 종료
    • 이전 게임 기록 초기화
  • 1, 2, 3 이외의 입력값인 경우 오류 메세지 출력
    • "올바른 숫자를 입력해주세요!"

Lv 4. 추가 기능 및 개선_Ver_02

게임 난이도 조절

  • 사용자로부터 난이도를 입력받고, 그에 따라 숫자의 자릿수를 조정 기능
  • 자리수는 3, 4, 5자리 숫자 중에서 선택
    • 3, 4, 5 이외의 값에 대해서는 예외처리
  • 자리수를 입력하면 자동으로 게임 실행

사용 방법

  1. 1번 입력(게임 시작)
  2. 랜덤한 숫자를 3개 입력
  3. 입력한 숫자와 정답과 비교
  4. 조건에 따라 힌트(볼/스트라이)출력
  5. 정답을 맞추면 축하 메세지 출력
  6. 몇번 째에 맞췄는지 출력
  7. 게임 종료
  8. 2번 입력(게임 기록)
  9. 현제 몇번 플레이 했으며 몇번째에 맞췄는지 출력
  10. 3번 입력(게임 종료)
  11. 이전에 플레이 했던 기록을 삭제
  12. 0번 입력(난이도 조절)
  13. 플레이하고 싶은 난이도 선택(3자리/4자리/5자리)
  14. 이후 바로 게임 시작
  15. 정답을 맞추면 축하 메세지 출력
  16. 몇번째에 맞췄는지 출력
  17. 게임 종료

예외 사항

1. 매뉴 선택

메뉴 선택 중 다른 번호나 숫자 특수문자가 들어오면 알림 문자 출력후 재 선택하게 예외처리

2. 난이도 선택

난이도 선택 중 다른 번호나 숫자 특수문자가 들어오면 알림 문자 출력후 재 선택하게 예외처리

3. 정답 길이 검사

정답 유효성 검사 중 입력 받은 정답의 길이가 다를 경우 알람 문자를 출려구 다시 입력 받도록 예외처리

4. 정답 유효성 검사

정답 유효성 검사 중에 숫자 이외의 문자가 들어오면 알람 문구 출력후 다시 입력 받게 예외 처리

5. 중복 검사

정답 유효성 검사를 통과후 숫자가 중복되어 사용됬을 경우 중복 알람 문자 출력 후 다시 입력 받게 예외 처리

6. 정답수 중복 체크

랜덤한 정답수를 만들때 중복된 숫자가 있을 경우 문자를 변수에 입력하지 않고 다시 랜덤한 정답수를 만들게 예외처리

평가

  • 완성도 : 필수(Lv 1, 2 기능) / 도전(Lv 3, 4기능)
  • 이해도 : 필수(트러블 슈팅 기록) / 도전(파일 분리, 직관적이고 이해 쉽게 코드 작성, 주석을 통한 코드 설명)
  • 우수성 : 필수(ReadMe 작성) / 도전(예외처리 2개이상 구혀ㄴ, 커밋 10회 이상 실행 )

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages