-조건 Main 에서 모든 로직을 짜지 말것.
-가위,바위,보에 대한 데이터 멤버를 가진 class 를 기본적으로 만들것\
예)
class RspPlayer{
//1.가위 2.바위 3.보
private int rsp;
.....
.....
...
public void result(RspPlayer player){
=== 승부 결과 출력 로직
}
}
===========================
가위 바위 보를 입력하세요.
가위
나는:바위 당신은:가위
제가 이겼습니다.
계속 Y :: 중단 N
y
가위 바위 보를 입력하세요.
보
나는:보 당신은:보
비겼습니다
계속 Y :: 중단 N
n
안녕히 가세요
▼정답
import java.util.Scanner;
class RspPlayer {
int rsp;
public RspPlayer(int rsp) {
this.rsp = rsp;
}
public int getRsp() {
return this.rsp;
}
public void result(RspPlayer player) {
System.out.println("나는:" + str() + " 당신은:" + player.str());
if (getRsp() == player.getRsp()) {
System.out.println("비겼습니다.");
} else if ((getRsp() - player.getRsp() == 1) || (getRsp() - player.getRsp() == -2)) {
System.out.println("당신이 졌습니다.");
} else if ((getRsp() - player.getRsp() == -1) || (getRsp() - player.getRsp() == 2)) {
System.out.println("당신이 이겼습니다.");
}
}
public String str() {
String str = null;
if (getRsp() == 1) {
str = "가위";
} else if (getRsp() == 2) {
str = "바위";
} else if (getRsp() == 3) {
str = "보";
}
return str;
}
}
public class Test40 {
public static void main(String[] args) {
boolean run = true;
while (run) {
Scanner sc = new Scanner(System.in);
System.out.print("가위 바위 보를 입력하세요. : ");
int input = sc.nextInt();
RspPlayer player = new RspPlayer(input); // 인스턴스 생성
RspPlayer com = new RspPlayer((int) (Math.random() * 3) + 1); // 인스턴스 생성
com.result(player);
System.out.println("계속 y :: 중단 n");
String yOrN = new String();
yOrN = sc.next();
if (yOrN.equals("y") || yOrN.equals("Y")) {
continue;
} else {
System.out.println("안녕히 가세요");
break;
}
}
}
}
[결과]
가위 바위 보를 입력하세요. : 1
나는:바위 당신은:가위
당신이 졌습니다.
계속 y :: 중단 n
y
가위 바위 보를 입력하세요. : 2
나는:바위 당신은:바위
비겼습니다.
계속 y :: 중단 n
n
안녕히 가세요