본문 바로가기
Language/Java

[Java] 자바 가위바위보 게임 만들기

Writer mintparc 2019. 10. 3.

스캐너로 입력받고 저장하기


  • 대결 상대는 컴퓨터이다.
  • 플레이어는 1 ~ 3 까지의 숫자를 스캐너를 통해 입력하여 가위, 바위, 보 중에 하나를 선택할 수 있다.
  • 컴퓨터는 1 ~ 3 까지의 숫자 중 랜덤 한 수 하나를 배정받았다.
  • 각각 user, com 변수에 저장했다.
Scanner sc = new Scanner(System.in);
	System.out.println("[1: 가위 2:바위 3:보]");

	int user = sc.nextInt();
	int com = (int) (Math.random() * 3 + 1 - 1) + 1;

 

 

입력받은 값을 설정해주기


  • 앞서 입력받은 숫자는 아직까지는 단순히 숫자에 불과하다. 이것을 1은 가위, 2는 바위, 3은 보자기로 설정해주자.
  • user와 com을 파라미터로 받아오는 game 메소드를 만들었다. 
public static void game(int user, int com) {

}

 

  • switch를 사용해서 숫자에 맞는 손가락 모양을 각각 users 와 coms 에 저장했다.
public static void game(int user, int com) {

	// user
	String users = null;
	switch (user) {
	case 1:
		users = "가위!";
		break;
	case 2:
		users = "바위!";
		break;
	case 3:
		users = "보자기!";
		break;
	}
        
	// computer
	String coms = null;
	switch (com) {
	case 1:
		coms = "가위!";
		break;
	case 2:
		coms = "바위!";
		break;
	case 3:
		coms = "보자기!";
		break;
	}
}

 

 

게임의 결과 출력하기


  • 게임의 결과도 game메소드에 이어서 작성했다.
  • 플레이어의 시점에서 승리, 무승부, 패배가 실행되도록 했다.
  • if ~ else if 를 사용해서 가위바위보 게임의 경우의 수에 따라 승패가 출력되도록 했다.
System.out.println("-------- 가위 바위 보 !----------");
System.out.printf("[나: %s] VS [컴퓨터: %s]\n", users, coms);

if ((com == 1 && user == 1) || (com == 2 && user == 2) || (com == 3 && user == 3)) {
	System.out.println("무승부...");
} else if ((com == 1 && user == 2) || (com == 2 && user == 3) || (com == 3 && user == 1)) {
	System.out.println("승리!");
} else if ((com == 1 && user == 3) || (com == 2 && user == 1) || (com == 3 && user == 2)) {
	System.out.println("패배ㅠㅠ");
}

 

 

가위바위보 게임 코드


public class RCP {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("[1: 가위 2:바위 3:보]");

		int user = sc.nextInt();
		int com = (int) (Math.random() * 3 + 1 - 1) + 1;

		game(user, com);

	}

	public static void game(int user, int com) {

		// user
		String users = null;
		switch (user) {
		case 1:
			users = "가위!";
			break;
		case 2:
			users = "바위!";
			break;
		case 3:
			users = "보자기!";
			break;
		}
		// computer
		String coms = null;
		switch (com) {
		case 1:
			coms = "가위!";
			break;
		case 2:
			coms = "바위!";
			break;
		case 3:
			coms = "보자기!";
			break;
		}
		System.out.println("-------- 가위 바위 보 !----------");
		System.out.printf("[나: %s] VS [컴퓨터: %s]\n", users, coms);

		if ((com == 1 && user == 1) || (com == 2 && user == 2) || (com == 3 && user == 3)) {
			System.out.println("무승부...");
		} else if ((com == 1 && user == 2) || (com == 2 && user == 3) || (com == 3 && user == 1)) {
			System.out.println("승리!");
		} else if ((com == 1 && user == 3) || (com == 2 && user == 1) || (com == 3 && user == 2)) {
			System.out.println("패배ㅠㅠ");
		}

	}


}

 

 

이클립스에서 실행 시 콘솔창에 보여지는 화면


댓글