Skip to content
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

[숫자 야구 게임] 인수빈 과제 제출합니다. #6

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

InSooBeen
Copy link

##기능 구현 목록

*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개로만 문제 풀이를 진행했습니다.
코드의 피드백 및 클래스와 패키지의 사용에 대해 조언해주시면 감사하겠습니다!

야구게임  java 코드 기능 구현에 대한 설
야구게임 기능 구현 설명 수정
야구게임 구현 기능 설명
@genius00hwan
Copy link
Collaborator

기능을 나눠 메소드 분리는 잘해주었어요.
야구게임에 필요한 기능을 생각하면서 해당 기능을 수행하는 객체는 무엇인지 생각해보면서 클래스 분리를 해보세요~~

if (check[i]) {
break; //스트라이크 처리가 된 숫자이면 넘기기
}
if (computer.charAt(j) == user.charAt(i) && i != j) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

자바 컬렉션 List<> 에 contains라는 함수를 이용해보세요~~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants