Deve.haeri

[Java/연습문제] 가위,바위,보 게임 하기 본문

Quiz/02.random

[Java/연습문제] 가위,바위,보 게임 하기

hhaeri 2020. 10. 10. 15:40

1. 문제 설명

- 랜덤으로 "가위,바위,보"를 출력하는 컴퓨터와 사용자의 "가위,바위,보" 중 하나를 입력 받아 결과를 출력한다.

 

2. 소스코드

package ex02_branch_quiz;

import java.util.Scanner;

public class Quiz07 {

	public static void main(String[] args) {
		//문제. 가위 바위 보
		//실행
		// 가위바위보 >>> 가위
		// 당신은 가위 >>> 컴퓨터는 보 이겼습니다.
		
		
		//컴퓨터
		String player1 = null;
		int gbb1 = (int)Math.random()*3;
		switch (gbb1) {
		case 0 : player1 = "가위"; break;
		case 1 : player1 = "바위"; break;
		case 2 : player1 = "보"; break;	
		}
		Scanner sc = new Scanner(System.in);
		
		//사용자
		System.out.print("가위,바위,보 중 입력하세요>>>");
		String player2 = sc.next();
		
		int gbb2;
		
		switch (player2) {
		case "가위" : gbb2 = 0; break;
		case "바위" : gbb2 = 1; break;
		default : gbb2 = 2;
		}
		
		//비교
		String result = null;
		
		switch (gbb2-gbb1) {
		case 0 : result = "비겼습니다."; break;
		case -2 : case 1 : result = "이겼습니다."; break;
		default: result = "겼습니다.";
		}
		System.out.println("컴퓨터는 " + player1 + "당신은 " +player2+ result);
	}

}

3. 문제 해결 방법

 1) 0~3 사이의 랜덤 숫자를 생성한다.

   - Math.randmon은 0~1 사이의 실수를 출력한다. 0~3 사이의 정수를 출력하기 위해선 "Math.random()*3;" 같은 형식      으로 작성한다.

 2) 0~3 사이 숫자에 가위,바위,보 중 하나를 지정한다.

 3) Scanner로 사용자의 입력값을 저장한다.

 4) 입력 받은 "가위,바위,보"에 숫자를 지정한다.

  - 가위 : 0, 바위 : 1, 보: 2 (컴퓨터와 동일한 숫자로 지정한다.)

 5) "가위,바위,보"에 지정한 숫자 값의 차이로 "가위,바위,보"의 결과를 결정한다.

  - 숫자 값의 차이가 0이라면 컴퓨터와 사용자가 동일한 걸 냈다는걸 의미하고, 한쪽이 숫자가 크다면 큰쪽이 이겼다는걸 의미한다.

 6) switch 문으로 조건 마다 실행결과를 저장한다.

 

4. 결과

 

Comments