첫 주에 만들었던 가위바위보 게임!
package java_area;
import java.util.Scanner;
public class rockPaperScissors{
public static void main(String[] args) {
boolean y = true; //불린 y 초기화를 시켜줘야 while(y)에서 사용 가능
Scanner scanner = new Scanner(System.in);
do {
System.out.println("가위:0 바위:1 보:2 >> ");
int rock = scanner.nextInt();
Game rps = new Game(rock);
rps.example();
System.out.println("계속 하시겠습니까? Y : 1 / N : 0 >> ");
int answer = scanner.nextInt();
if(answer == 1) {
y = true;
} else if (answer == 0) {
y = false;
} else {
System.out.println("잘못입력하셨습니다.");
System.out.println();
}
} while(y);
scanner.close();
}
}
내가 잘못한부분은 boolean을 이용하지 않고 while에 true를 주고,
if(answer == 1 ) { example(); } --> 함수를 실행시켜서 무한루프에 빠졌었다.
package java_area;
public class Game {
int rock;
public Game(int rock){
this.rock = rock;
}
public void example(){
int value = (int)(Math.random()*3);
if(value == 0){
System.out.println("컴퓨터 : 가위");
} else if (value == 1) {
System.out.println("컴퓨터 : 바위");
}else
System.out.println("컴퓨터 : 보");
System.out.println("--------------------");
if(value == rock) {
System.out.println("무승부");
} else if(value == 0 && rock == 1) {
System.out.println("이겼습니다.");
} else if (value == 0 && rock == 2) {
System.out.println("졌습니다.");
} else if(value == 1 && rock == 0) {
System.out.println("졌습니다.");
} else if (value == 1 && rock == 2) {
System.out.println("이겼습니다.");
} else if (value == 2 && rock == 0) {
System.out.println("이겼습니다.");
} else if (value == 2 && rock == 1) {
System.out.println("졌습니다.");
}
System.out.println();
}
}
내가 무엇을 냈는지도 표시되도록 +
0,1,2가 아닌 것을 입력했을 때 잘못입력했다고 출력하도록 코드 수정.
package java_area;
public class Game {
int rock;
public Game(int rock){
this.rock = rock;
if (rock == 0) {
System.out.println("나 : 가위");
} else if(rock == 1) {
System.out.println("나 : 바위");
} else if(rock == 2) {
System.out.println("나 : 보");
}
System.out.println();
}
public void example(){
if(rock != 0 && rock !=1 && rock !=2) {
System.out.println(" ");
System.out.println("잘못입력하셨습니다. 다시입력해주세요");
System.out.println();
} else {
int value = (int)(Math.random()*3);
if(value == 0){
System.out.println("컴퓨터 : 가위");
} else if (value == 1) {
System.out.println("컴퓨터 : 바위");
} else
System.out.println("컴퓨터 : 보");
System.out.println("--------------------");
System.out.println();
if(value == rock) {
System.out.println("[무승부]");
} else if(value == 0 && rock == 1) {
System.out.println("[이겼습니다.]");
} else if (value == 0 && rock == 2) {
System.out.println("[졌습니다.]");
} else if(value == 1 && rock == 0) {
System.out.println("[졌습니다.]");
} else if (value == 1 && rock == 2) {
System.out.println("[이겼습니다.]");
} else if (value == 2 && rock == 0) {
System.out.println("[이겼습니다.]");
} else if (value == 2 && rock == 1) {
System.out.println("[졌습니다.]");
}
System.out.println();
}
}
}
switch case 문으로도 표현 가능.
public Game(int rock){
this.rock = rock;
switch (rock) {
case 0 : System.out.println("나 : 가위");
break;
case 1 : System.out.println("나 : 바위");
break;
case 2 : System.out.println("나 : 보");
break;
}
System.out.println();
}