- 숫자 야구 게임 요구사항을 파악한다.
- 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 과제를 제출한다.
- 1~9까지
서로 다른3자리의 난수를 생성한다. - 사용자에게 서로 다른 3자리 입력받는다.
- 생성된 난수와 사용자의 3자리를 비교하여 게임을 진행한다.
- 스트라이크 : 3자리 수 중 하나의 수라도
자릿수와 숫자가 일치할 경우- ex) 456 - 478 : 1 스트라이크
- 볼 : 3자리 수 중 하나의 수라도
숫자는 일치하지만 자릿수가 일치하지 않을경우- ex) 456 - 245 : 1 볼
- 낫싱 : 3자리 수 중 어느 하나의 수도
자릿수와 숫자가 일치하는 수가 없을경우- ex) 456 - 123 : 낫싱
- 위 과정을 반복 후 3 스트라이크 발생 시 게임 종료 메세지와 함께 재시작 or 종료 선택 메세지를 출력한다.
- 새로 시작 시 1 번으로 돌아가며 종료 시 프로그램을 종료한다.
- 자바 컨벤션
- indent depth가 2를 넘지 않도록 구현
- stream api는 사용하지 않지만 람다식은 가능
- else 예약어와 switch/case 사용 불가
- 함수의 길이가 10줄 이하로 구현
- 로직에 단위 테스트 구현 - 핵심 로직 코드와 UI 담당 코드 구분
- Junit5 기반 단위 테스트 구현
- 시작을 알리는 gameStart() 메서드 구현
- 시작 메시지 출력
- 컴퓨터의 서로 다른 3자리 난수 생성
- 사용자의 ballSwing() 메서드 구현
- 숫자 입력 메세지 출력
- 숫자 유효성 검사
- 컴퓨터 난수와 사용자 숫자 비교
- 결과 출력
- 3 스트라이크 시 종료
- 끝을 알리는 gameEnd() 메서드 구현
- 종료 메세지 출력
- 새 시작과 종료 선택 메세지 출력 후 사용자 입력
- 새 시작 입력 시 start() 실행
- 종료 입력 시 프로그램 종료