-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kyne.k 사전과제 제출합니다 #28
Open
mckim123
wants to merge
33
commits into
next-step:main
Choose a base branch
from
mckim123:kyne.k
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 기능 요구 사항, 실행 결과 예시, 프로그래밍 요구 사항 pdf 내용 README.md에 추가
- 숫자 야구 게임 기능 목록 생성 및 정리
- 패키지 및 클래스 구조 생성
- InputView, OutputView, GameController 생성 - gameController 실행
- 생성자를 통해 InputView, OutputView 초기화(final) - play() 메소드 구현 - 게임 초기화 후 실행 - 각 게임 종료 후 재실행 여부에 대한 입력을 받도록 구현 - playGame() 메소드 구현 : 각 게임 내에서의 실행 기능 - 사용자의 입력을 받아 StrikeBallCount 결과 생성 - 결과 출력 - 게임 종료 여부를 확인하여 종료할 때까지 실행
- 생성자로 정답을 입력받고, 이를 활용한 심판 생성 - getResult() 메소드 구현 - userNumbers를 인자로 받아 판정 결과 반환
- 게임 전반에서 쓰이는 상수를 관리하는 enum class - getValue() 메소드 생성
- reset() 메소드 : 스트라이크, 볼 카운트 모두 0으로 초기화 - strikeCount, ballCount에 대한 getter 구현 - addStrikeCount(), addBallCount() : strikeCount, ballCount 각각을 1 늘리는 함수 - getIsComplete() : 길이와 strikeCount가 일치하는지 확인 -> 게임이 종료되는지 확인
- 판정하는 메서드 judge()와의 이름 중복을 피하기 위해 클래스 명 수정
- List<Integer>의 형태로 숫자 저장 - contains, add, isFull, getIndex 메소드를 구현
- java.util.Random 클래스 활용 - baseballNumbers.java의 add method 활용
- StringBuilder 활용 - addString() 메서드를 구현하여 스트라이크, 볼을 StringBuilder에 더하는 과정을 한 번에 처리 - 스트라이크, 볼에 대한 문자열을 추가한 이후에도 비어있다면 낫싱을 추가
- judge() 메소드 구현 - 길이를 가져오기 위해 length 생성 - 특정 자리 숫자 가져오기 위해 BaseballNumbers.getNumberAt() 메소드 추가 - 역할을 분리하여 각 자리에 따라 판정하는 메소드 분리 : judgeOneNumber() - judgeOneNumber() 메소드 구현 - 포함하는 경우 카운트를 수정하는 메소드 changeCount() 호출 - changeCounte() 메소드 구현 - 인덱스도 일치하는 경우 스트라이크, 아닌 경우 볼 카운트 1 증가
- validate() : 검증 후 원하는 변환 값을 반환하는 메소드 - removeSpace() : 공백을 제거하는 메소드
- 정규표현식을 활용하여 각 자리가 지정 범위 내에 포함되는지 여부와 길이 검증 - Hashset의 길이가 기존과 길이가 같은지 판정하여 중복이 없음을 검증 - BaseballNumbers의 생성자 추가 - 검증된 입력을 문자열 배열로 변환하여 인자로 제공
- Boolean -> boolean
- validate 함수 구현 - 잘못된 입력의 경우 예외 처리
- 예외 처리 로직 구현
- 기존 누락된 "3개의 숫자를 모두 맞히셨습니다! 게임 종료" 문자열 출력 추가
- Readme.md 기능 목록 추가 - 구현된 기능 체크
- 재시작 여부 command를 enum class로 관리 - 이를 반영하여 InputRestartValidator, InputView 수정
- 모든 카운트 조합을 담당하는 내부 enum BallCounts 생성 - 모든 조합에 대해 제대로 된 결과가 출력되는지 확인
- Restart 입력에 대한 테스트 코드
- UserAnswer 입력에 대한 테스트 코드 - 성공 케이스, 실패 케이스 체크(형식 예외, 중복 예외)
- 가지고 있는 숫자(numbers)를 비교하도록 수정
- 가지고 있는 숫자(strikeCount, ballCount)끼리 비교하도록 수정
- 다른 테스트에서도 사용하기 위해 inner enum 분리 - StrikeBallCount 생성도 분리된 enum에서 진행
- 가능한 모든 볼카운트 조합에 대해 제대로 나오는지 확인
- 기존 요구사항과 기능 사항에 대한 서로 다른 Readme 파일을 하나로 통합함
- import 구문 순서 변경 - 개행 추가 및 삭제
- InputUserAnswerValidatorTest의 메서드 이름 수정 : InputRestart_성공테스트() -> InputUserAnswer_성공테스트()
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.