Daily coding

Java Basic : day 4 - Example 02 : 가위바위보 (Rock Scissors Paper) 본문

Language/Java_basic

Java Basic : day 4 - Example 02 : 가위바위보 (Rock Scissors Paper)

sunnnkim 2019. 11. 22. 18:36
package day4;

import java.util.Random;
import java.util.Scanner;

public class Ex02_RockScissorsPaper {
	public static void main(String[] args) {

		/*
	 	가위 바위 보
	 	user : com
	 	
	 	출력
	 	0 win 0 lose 0 draw 
	 
	 	replay
	 	
	 */
	
	Random r = new Random();
	Scanner sc = new Scanner(System.in);
	
	// 선언
	int user, com;
	int result;
	int win, lose, draw;
	String msg;
	String u_str;	// 유저가 낸 값 String 출력
	String c_str;	// 컴퓨터의 값 String 출력
	
	
	// 초기화
	win = draw = lose = 0;
	u_str="";
	c_str="";
	
	while(true) {
	// 입력 및 랜덤 수 할당
	com = r.nextInt(3) + 1;
	switch(com) {
		case 1:
			c_str = "가위";
			break;
		case 2:
			c_str = "바위";
			break;
		case 3:
			c_str = "보";
			break;
	}
	
	
	System.out.println("< 가위 바위 보 게임 >");
	System.out.println(" --------------");
	while(true) {
	try {
		System.out.println("1.가위 2.바위 3.보");
		System.out.print(">> ");
		user = sc.nextInt();
		switch(user) {
		case 1:
			u_str = "가위";
			break;
		case 2:
			u_str = "바위";
			break;
		case 3:
			u_str = "보";
			break;
		default :
			System.out.println("잘못 입력했습니다.");
			continue;
		}break;
	} catch (Exception e) {
		System.out.println("잘못 입력했습니다.");
		sc.nextLine();
	}
	}

	
	// 판단 
	// 1.가위 2.바위 3.보
	// 이기는 경우
	if( user == 1 && com == 3 || user == 2 && com == 1 || user == 3 && com == 2 ) {
		win++;
		result = 1;
	}
	// 지는 경우
	else if( user == 1 && com == 2 || user == 2 && com == 3 || user == 3 && com == 1 ) {
		lose++;
		result = 2;
	} 
	// 비기는 경우
	else {
		draw++;
		result = 3;
	}
	

	/*
	com			user				win
	2		-	0	+ 2		=	4		% 3	-> 1		
	0		-	1	+ 2		=	1
	1		-	2	+ 2		=	1
	
	com			user				lose
	0		-	2	+ 2		=	0		% 3	-> 0		
	1		-	0	+ 2		=	3
	2		-	1	+ 2		=	3
	
	com			user				draw
	0		-	0	+ 2		=	2		% 3	-> 2		
	1		-	1	+ 2		=	2
	2		-	2	+ 2		=	2
	
*/

	
	
	// 출력
	System.out.println("-나 : " + u_str + "\n-컴퓨터 : "+ c_str);
	switch(result) {
		case 1:
			System.out.println("이겼습니다 !");
			break;
		case 2 :
			System.out.println("졌습니다 !");
			break;
		case 3:
			System.out.println("비겼습니다 !");
			break;
	}
	
	System.out.println(win + "승 "+ lose + "패 " + draw + "무");
	System.out.print("다시 하시겠습니다? (y/n) : ");
	msg = sc.next();
	if(!msg.equalsIgnoreCase("y")) {
		System.out.println("GAME OVER");
		break;
	}
	System.out.println("*RESTRAT*");
	
	
	}
	
	
	}
}