[Java] 동전 홀 짝 맞추기
이번시간에는 동전 20개중에
몇 개로 홀짝을 할건지 입력 받고
유저가 몇 개인지 답을하고
컴퓨터가 개수를 임의로 정해서
홀짝인지 판단 후
유저의 정답을 입력받고
유저의 정답이 맞는지 출력하는
프로그램을 만들어 보도록 하겠습니다.
public int inputCoin() {
System.out.println("몇개 짤짤이할거야?");
coin = sc.nextInt();
return coin;
}
먼저 User 클래스를 하나 만들어줍니다.
가장 먼저 만들 메소드는
User에게 동전의 개수를 입력받고
리턴하는 함수입니다.
다음은 컴퓨터 클래스를 만들어주고
동전의 개수를 정하는 Reroll메소드와
홀 짝을 판단하는 메소드를 만들어줍니다.
public int Reroll(int n) {
coin = r.nextInt(n) + 1;
return coin;
}
이때는 랜덤을 사용하여 개수를 정합니다.
public String isOdd(int n) {
if (n%2 == 0) {
return "짝";
}else return "홀";
}
개수를 파라미터로 입력받고
홀인지 짝인지 판단하여 리턴합니다.
다시 유저클래스로 돌아가서
public String askAnswer() {
System.out.println("홀 / 짝");
String answer = sc.next();
if(answer.equals("홀") ||answer.equals("짝") )
return answer;
else{
System.out.println("홀 / 짝을 다시 입력해주세요");
return askAnswer();
}}
정답을 입력받는 메소드를 만들어 줍니다.
이 정답을 가지고
public void judgeOdd(String s ,String result) {
if (s.equals(result)) {
System.out.println("정답입니다!");
}else System.out.println("틀렸네요.");
}
컴퓨터 클래스에서
정답인지 아닌지 출력합니다.
public void playGame(Computer c) {
int coin = c.Reroll(inputCoin());
String answer = c.isOdd(coin);
c.judgeOdd(answer, askAnswer());
System.out.printf("코인은 %d 개, 답은 %s",coin,answer );
}
그리고 유저클래스에서 전체를 실행하는
메소드를 만들어줍니다.
마지막에는 정답을 확인할 수 있는 출력문도 출력해줍니다.

컴퓨터와 유저클래스를 만들어서
클래스를 왔다갔다하며
멤버 변수에 접근하고
메소드를 구현해서 사용해봤는데
메인 클래스에서 변수를 선언하게 되면
복잡한 프로젝트를 하게 되면
변수 관리의 어려움이 있습니다.
하지만 클래스를 나눠서 사용하니
변수 관리가 용이해지고
디버깅도 쉬워졌다고 느꼈습니다.
이상 홀 짝 실습이었습니다!