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.
##기능 구현 목록
*public static void startGame()
야구 게임을 실행하는 함수이며, do while문을 통해 게임은 무조건 1번 실행하고, do while문 내부에서 while문을 이용해 사용자가 정답을 맞출 때까지 게임을 진행합니다. 사용자가 정답을 맞추면 사용자의 응답에 따라 게임을 재시작 또는 종료합니다.
게임 진행 과정은 다음과 같습니다.
1)사용자가 입력한 형식이 올바르면 check3Strike 함수로 정답인지 확인합니다.
2) 정답이라면 현재 게임을 종료하고 restartGame을 통해 게임을 다시 시작할지, 종료할지를 결정합니다.
3) 정답이 아니라면 checkState를 이용하여 strike에 해당하는 숫자가 있다면 boolean 배열인 check에 해당 위치를 true로 변경하고 checkStrike를 이용하여 strike 개수를 구합니다.
4) checkBall을 이용하여 스트라이크에 해당하는 숫자의 위치를 제외한 나머지 숫자를 비교하여 ball의 개수를 구합니다.
5) nothing의 개수는 3-(strike+ball)로 계산합니다.
6) printResult를 이용하여 사용자가 입력한 숫자에 대한 결과를 출력합니다.
위의 과정을 맞출때까지 반복합니다.
*public static boolean restartGame()
사용자가 정답을 맞추면 게임 재시작 안내 문구를 출력하고 응답 결과를 boolean으로 반환하는 함수입니다.
*public staic String setComputer()
컴퓨터가 3자리의 숫자를 랜덤으로 생성하게 하는 함수. 1부터 9까지의 숫자를 Random으로 3번 생성해서 빈 문자열에 차례대로 더하는 방식입니다. 3자리 숫자는 String 타입으로 나타냈습니다.
*public static String setUser()
'숫자를 입력해주세요'라는 메세지를 출력하고 사용자로부터 3자리 숫자를 입력받는 함수입니다. 사용자가 입력한 문자의 길이가 3자리를 만족하지 않거나, 숫자 외의 값을 입력한 경우 IllegalArgumentException을 발생시킵니다.
*public static boolean check3Strike(String computer, String user) computer의 숫자와 user가 입력한 숫자가 동일한지를 확인하는 함수입니다. 정답을 맞춘 경우 '3스트라이크', '3개의 숫자를 모두 맞히셨습니다! 게임 종료'라는 메세지를 출력하고 true를 반환하고 정답을 맞추지 못한 경우 false를 반환합니다.
*public static boolean[] checkState(String computer, String user)
사용자가 입력한 3자리 중 스트라이크에 해당하는 숫자의 위치를 true로 변경하는 함수입니다. ball을 계산할 때 strike처리가 된 숫자는 계산에 포함되지 않도록 하기 위한 기능입니다.
*public static int checkStrike(String computer, String user)
사용자가 입력한 3자리 중 스트라이크에 해당하는 숫자의 개수를 세고 반환하는 함수입니다.
*public static int checkBall(String computer, string user, boolean[] check)
사용자가 입력한 3자리 중 스트라이크에 포함되지 않은 숫자를 컴퓨터 숫자와 비교하며 ball의 개수를 세고 반환하는 함수입니다.
*public static void printResult(int strike, int ball, int nothing)
사용자가 입력한 3자리 숫자의 결과를 알려주는 함수입니다. nothing이 3개이면 '낫싱'을 출력하고 ball과 strike가 둘다 존재하면 볼, 스트라이크로 출력합니다. ball만 존재하거나 strike만 존재하면 볼 또는 스트라이크만 출력합니다.
##전달 메세지
java를 처음 사용해서 class와 package를 이용한 구현 방법이 미숙하여 Application class 1개로만 문제 풀이를 진행했습니다.
코드의 피드백 및 클래스와 패키지의 사용에 대해 조언해주시면 감사하겠습니다!