네이버클라우드 캠프 | BE/Java 과제

[네이버클라우드 캠프/1주차] 가위바위보 게임

three kim 2023. 3. 20. 12:27
728x90

3월 15일(수)에는  앞서 포스팅한 구구단 외에도 가위바위보 게임을 과제로 받아 풀었습니다.

가위바위보 게임 역시 생각의 흐름, 사고 방식에 대해 정리해보겠습니다.

 

문제 : 가위바위보 게임을 만드세요.

comp는 0`2 사이 정수 랜덤 값을 생성합니다. (0 : 가위, 1 : 바위, 2 : 보)
user는 0, 1, 2를 입력하여, comp와 user의 승무패를 출력하세요.

 

Scanner를 통해 user(사용자)의 값을 입력받거나, comp의 랜덤 값을 생성하는 것은 어렵지 않을 것입니다.

저는 comp와 user의 값을 비교할 때

관계연산자 == 을 여러 번 사용하고 싶지 않아, comp와 user 값에 대해  규칙을 찾았습니다.

 

<사용자가 이길 경우>

user(사용자) 0 가위 1 바위 2 보
comp(컴퓨터) 2 보 0 가위 1 바위
user - comp - 2 1 1

 

<사용자가 질 경우>

user(사용자) 0 가위 1 바위 2 보
comp(컴퓨터) 1 바위 2 보 0 가위
user - comp - 1 - 1 2

 

최종 소스코드

import java.util.Random;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자를 입력하세요 (0:가위, 1:바위, 2:보) > ");
		int user = sc.nextInt();
		
		Random r = new Random();
		int comp = r.nextInt(3); // 0-2 랜덤 값 대입
		
		if(user==comp) {
			System.out.printf("com은 %d, 당신과 비겼습니다.", comp);
		} else if(user-comp == 1 || user-comp == -2) {
			System.out.printf("com은 %d, 당신이 이겼습니다.", comp);
		} else {
			System.out.printf("com은 %d, 당신이 졌습니다.", comp);
		}
	}
}