- 프로그램 개요 가위 바위 보 게임은 두 플레이어가 동시에 손 모양을 내어 승부를 가리는 간단한 게임입니다. 이 프로그램은 사용자가 입력한 선택(가위, 바위, 보)과 컴퓨터의 랜덤 선택을 비교하여 결과를 출력합니다.
- 코드 설명 아래는 가위 바위 보 게임을 구현한 Java 코드입니다.
package ex03;
import java.util.Scanner;
public class RockPaperScissor {
final int SCISSOR = 0; // 가위
final int ROCK = 1; // 바위
final int PAPER = 2; // 보
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("가위(0) 바위(1) 보(2)");
int user = sc.nextInt(); // 사용자 입력 받기
int computer = (int) (Math.random() * 3); // 컴퓨터의 랜덤 선택
if (user == computer) {
System.out.println("인간과 컴퓨터가 비겼음");
} else if (user == (computer + 1) % 3) { // 0은 1한테 지고, 1은 2한테, 2는 0한테 진다.
System.out.println("인간:" + user + " 컴퓨터:" + computer + " 인간 승리");
} else {
System.out.println("인간:" + user + " 컴퓨터:" + computer + " 컴퓨터 승리");
}
sc.close(); // Scanner 종료
}
}
3. 코드 구성 요소
상수 정의:
SCISSOR, ROCK, PAPER라는 상수를 정의하여 가위, 바위, 보를 각각 0, 1, 2로 나타냅니다. 이로써 코드의 가독성을 높입니다.
사용자 입력:
Scanner 클래스를 사용하여 사용자로부터 가위(0), 바위(1), 보(2) 중 하나를 입력받습니다.
컴퓨터의 선택:
Math.random() 메서드를 사용하여 0부터 2 사이의 랜덤한 정수를 생성하여 컴퓨터의 선택을 결정합니다.
결과 비교:
사용자와 컴퓨터의 선택을 비교하여 결과를 출력합니다.
비긴 경우, 사용자가 이긴 경우, 컴퓨터가 이긴 경우로 나뉘어 결과를 출력합니다.
4. 게임 로직
비김: 사용자가 입력한 값과 컴퓨터의 값이 같을 때 비깁니다.
사용자 승리: 사용자가 선택한 값이 컴퓨터의 선택에 따라 이길 때 승리합니다. (가위는 보를 이기고, 바위는 가위를 이기고, 보는 바위를 이깁니다.)
컴퓨터 승리: 위의 조건에 해당하지 않으면 컴퓨터가 승리합니다.
5. 사용 예시
사용자가 다음과 같이 입력한다고 가정해 봅시다:
가위(0) 바위(1) 보(2)
1
만약 컴퓨터의 선택이 0(가위)이었다면, 출력은 다음과 같습니다:
인간:1 컴퓨터:0 컴퓨터 승리
만약 컴퓨터의 선택이 1(바위)이었다면, 출력은 다음과 같습니다:
인간:1 컴퓨터:1 인간과 컴퓨터가 비겼음
만약 컴퓨터의 선택이 2(보)이었다면, 출력은 다음과 같습니다:
인간:1 컴퓨터:2 인간 승리
Share article