자세히보기

IT/Programming

[Java] while문을 활용한 가위, 바위, 보 게임

COMDORI 2020. 3. 4. 18:59
728x90
반응형

2020/03/04 - [IT/Programming Practice] - [Java] 간단한 출력문

2020/03/04 - [IT/Programming Practice] - [Java] 계산기

2020/03/04 - [IT/Programming Practice] - [Java] 3 거스름돈 분리 계산

2020/03/04 - [IT/Programming Practice] - [Java] 4 성적 출력 하기

2020/03/04 - [IT/Programming Practice] - [Java] 짝수, 홀수, 제로 숫자 세기 프로그램

2020/03/04 - [IT/Programming Practice] - [Java] 반지름 입력후 원의 넓이 구하기

2020/03/04 - [IT/Programming Practice] - [Java] 학생 정보 입력 시스템 출력

2020/03/04 - [IT/Programming Practice] - [Java] do~while문을 활용한 출력 프로그램

2020/03/04 - [IT/Programming Practice] - [Java] 이중 do-while 문

2020/03/04 - [IT/Programming Practice] - [Java] 원, 정삼각형, 삼각형 넓이, 둘레 구하기

 조건

 가위 바위 보 게임 !

 Math.random() 을 사용한다.

 사용자가 1,2,3 키 중 하나를 입력하면 프 로그램도 난수 발생기를 이용하여 1,2,3 중 에 한 수를 발생

 While 문을 사용해서 반복

 4를 누를 경우 끝내기 !

 

★ 코드를 복사 하려면 소스코드 오른쪽 상단 "Copy"버튼을 클릭하세요.

 

소스코드

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

public class HW1_3 {

	private static Scanner scan;

	public static void main(String[] args) {
		scan = new Scanner(System.in);

		System.out.println("======================\n학번: 20160000\n이름: 컴돌이\n======================");
		Random wj = new Random(); // 랜덤 함수 라이브러리를 사용
		String[] Game = new String[] { "알수없음", "가위", "바위", "보" }; // 4가지의 무기(객체)배열 생성, 데이터 정의

		int user, com; // 사용자, 컴퓨터 변수 생성

		while (true) {
			System.out.println("가위 바위 보 게임 입니다!\n 다음 메뉴중 선택 해주세요.");
			System.out.println("|1. 가위|\t|2. 바위|\t|3. 보|\t|4. 끝내기|");
			user = scan.nextInt(); // 사용자가 낼 무기를 입력 받음.
			com = wj.nextInt(4); // 컴퓨터는 자동으로 4개중에 1개를 랜덤으로 입력.

			if (user > 4) {
				System.out.println("다시 선택해주세요.\n");
				continue;
			} else if (user == 4) {
				System.out.println("게임이 종료되었습니다.\n");
				System.exit(0);
			}
			if (user == com) {

				System.out.println("컴퓨터는 " + Game[com] + "를 냈습니다.");
				System.out.println("비겼네요.\n");
			} else if (user == 0 ^ com == 0) { // 배열 1번째(게임 오류)
				System.out.println("컴퓨터는 무기를 무엇으로 선택해야 할 지 모르는 상태입니다.");
				System.out.println("그러므로 당신이 이겼네요!! \n");
			} else if (user == 2 && com == 3 || com == 0) { // 사용자가 바위를 냈을때 컴퓨터는 보자기를 내므로 사용자는 패배.
				System.out.println("컴퓨터는 " + Game[com] + "를 냈습니다.");
				System.out.println("당신이 졌어요. ㅠㅜ\n");
			} else if (user == 1 && com == 3 || com == 0) { // 사용자가 가위를 냈을때 컴퓨터는 보자기를 내므로 사용자 승리.
				System.out.println("컴퓨터는 " + Game[com] + "를 냈습니다.");
				System.out.println("당신이 이겼네요! :)\n");
			} else if (user > com) { // 사용자가 승리했을때의 이벤트.
				System.out.println("컴퓨터는 " + Game[com] + "를 냈습니다.");
				System.out.println("당신이 이겼네요! :)\n");
			} else { // 사용자가 패배했을떄의 이벤트.
				System.out.println("컴퓨터는 " + Game[com] + "를 냈습니다.");
				System.out.println("당신이 졌어요. ㅠㅜ\n");
			}
		}
	}
}

 

◈ 소스코드를 보시고 고칠 부분이나 더 좋은 로직이 있다면 코멘트 달아주세요! 

이상 문제 11번 입니다.

 

 

컴돌이블로그

#자바

728x90
반응형