본문 바로가기

2023.11.21-2024.05.31

1205수업11일차(JAVA) - If05(가위바위보)

 package dec05;

 

 import java.util.Scanner;

 

 //가위바위보 게임 만들기

 public class If05 {

 

  public static void main(String[] args) {

  Scanner sc = new Scanner(System.in);

  int input; // 사용자가 낸 1가위 2바위 3보

  int com; // 컴퓨터가 뽑은 1가위 2바위 3보

 

  // 랜덤뽑기 Math. random(); = 0.0이상, 1.0이하의 랜덤한 수

  com = (int) (Math.random() * 3 + 1);

  System.out.println(com);

 

  System.out.println("가위바위보 게임에 오신것을 환영합니다.");

  System.out.println("1 가위, 2 바위, 3 보");

  System.out.print("입력 > _");

 

  input = sc.nextInt();

  // if문으로 판정해주세요

  // 1가위 2바위 3보

  // 이김 -2, 1, 1

  // 짐 -1, -1, 2

  if (com == 1 && input == 3 || com == 2 && input == 1 || com == 3 && input == 2) {

  System.out.println("컴퓨터가 이겼습니다.");

  } else if (com == 1 && input == 2 || com == 2 && input == 3 || com == 3 && input == 1) {

  System.out.println("당신이 이겼습니다.");

  } else if (com == input) {

 System.out.println("비겼습니다.");

 

  }

 

  }

 

}

 

 

 

Math.random()

Java의 Math 클래스에 있는 정적 메서드 중 하나로,

0.0 이상이고 1.0 미만의 난수(랜덤한 실수)를 생성합니다.

즉, 0.0은 포함되지만 1.0은 포함되지 않습니다.

이 메서드를 호출하면 매번 다른 값을 얻을 수 있으며, 주로 난수 생성에 활용됩니다.

 

com = (int) (Math.random() * 3 + 1); // 3+1인 이유

( 1부터 3까지의 랜덤한 값을 할당하여 컴퓨터의 선택을 나타낸다. )

Math.random() * 3은 0.0 이상 3.0 미만의 난수를 생성합니다.

여기에 1을 더하는 이유는, 난수의 범위를 1부터 3까지로 만들기 위함입니다.

일반적인 가위바위보 게임은 1, 2, 3 세 가지 경우(가위, 바위, 보) 중 하나를 선택합니다.

따라서 0.0 이상 3.0 미만의 난수를 생성하고 이를 정수로 변환하여 1, 2, 3 중 하나를 얻기 위해 1을 더하는 것입니다.

만약 Math.random() * 3만 사용한다면, 0.0 이상 3.0 미만의 실수를 얻게 되고,

이를 정수로 변환하면 0, 1, 2 중 하나를 얻게 됩니다.

하지만 보통의 가위바위보 게임은 1, 2, 3을 사용하므로, 이에 맞게 1을 더하여 범위를 1부터 3까지로 맞추는 것입니다.