inblog logo
|
sxias
    자바

    [JAVA] 21. else if를 사용한 가위바위보 게임

    문정준's avatar
    문정준
    Feb 05, 2025
    [JAVA] 21. else if를 사용한 가위바위보 게임
    Contents
    가위바위보 게임문제 분석코드 작성결과

    가위바위보 게임

    • 사용자가 가위, 바위, 보 중 하나를 선택하면 컴퓨터가 생성한 난수값과 비교하여 승패를 출력하는 가위, 바위, 보 게임을 작성하시오.

    문제 분석

    • Scanner를 통해 입력 받은 정수를 변수에 저장
    • 컴퓨터가 사용할 난수 ( 0 ~ 2 ) 필요
    • 가위 바위 보의 게임 룰
      • 가위(0)는 바위(1)에 진다. : 0 < 1
      • 바위(1)는 보(2)에게 진다. : 1 < 2
      • 보(2)는 가위(0)에게 진다. : 2 < 0 ? → 2 < 3 % 3
      • 같은 수면 무승부가 된다.
     

    코드 작성

    package ex03; import java.util.*; public class RockPaperScissor { public static void main(String[] args) { // 1. 가위(0), 바위(1), 보(2) 선언 int scissor = 0, rock = 1, paper = 2; // 2. 사용자 입력 받기 Scanner sc = new Scanner(System.in); System.out.print("가위(0), 바위(1), 보(2) : "); int user = sc.nextInt(); // 3. 컴퓨터 난수 설정 int computer = (int) Math.random() * 3; // 0 ~ 1 사이의 난수 * 3을 정수로 변환 // 4. 경우의 수 출력 if (user == computer) { System.out.println("비겼습니다."); } else if (user == (computer + 1) % 3) { // user와 computer가 다르고, user가 computer보다 수가 1이 클 때 이김 // 가위 (0 = 3 % 3 = (2 + 1) % 3) 는 보(2)를 이김 System.out.println("인간 : " + user + "\t컴퓨터 : " + computer + "\t인간 승리"); } else { // 지는 경우 : 나머지 System.out.println("인간 : " + user + "\t컴퓨터 : " + computer + "\t컴퓨터 승리"); } } }
    • Scanner를 통해 입력 받을 정수를 user에 저장
    • 컴퓨터의 난수를 0부터 2까지 설정하기 위해 Math.random() * 3을 정수로 다운캐스팅
    • user와 computer 비교
      • 같을 경우 무승부, 다를 때 computer보다 user가 1이 크면 user 승
        • 보(2)를 가위(0)가 이기기 위해서는 보에 1를 더하고 3으로 나눈 나머지를 구함
      • 나머지 경우는 computer가 승
     

    결과

    notion image
     
    💡
    문제 요점
    1. Scanner를 통해 입력 받을 정수를 변수에 저장
    1. 가위 바위 보 게임의 룰을 이해하고 이를 반영하는 방법에 대해 고민할 것
    1. 컴퓨터의 난수는 0 ~ 1까지이므로, 이 범주를 확대하여 정수로 표현하는 것에 유의
    Share article
    Contents
    가위바위보 게임문제 분석코드 작성결과

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog