가위바위보 게임

jinkyung·2021년 1월 14일
0

JAVA

목록 보기
26/29

첫 주에 만들었던 가위바위보 게임!

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();
	}

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN