네이버클라우드 캠프 | 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);
}
}
}