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까지로 맞추는 것입니다.
'2023.11.21-2024.05.31' 카테고리의 다른 글
1206수업12일차(JAVA) - Test01 (1) | 2023.12.06 |
---|---|
1205수업11일차(JAVA) - If06(System.in.read()) (1) | 2023.12.06 |
1205수업11일차(JAVA) - If04(TEMP2) (1) | 2023.12.06 |
1205수업11일차(JAVA) - If03( TEMP) (1) | 2023.12.06 |
1205수업11일차(JAVA) - If02(짝수, 홀수) (1) | 2023.12.06 |