[Java 6-2 RpaGameApp] 가위바위보 게임

임승현·2022년 10월 4일

Java

목록 보기
18/126
package basic;

import java.util.Scanner;

//가위바위보 게임 프로그램 작성
// => 컴퓨터(난수값)와 사용자(키보드 입력값)의 가위바위보 대결
// => 사용자가 이길 경우 대결을 반복 실행하며 질 경우 대결 종료
// => 대결 종료 후 사용자의 승리 횟수 출력
public class RpaGameApp {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		 
		//사용자의 승리 횟수를 저장하기 위한 변수
		int count=0;
		
		//가위바위보 대결 - 반복 처리
		while(true) {
			//컴퓨터에게 가위바위보 중 하나를 제공받아 저장
			// => 1 : 가위, 2 : 바위, 3 : 보
			// => 1~3 범위의 정수값을 난수로 제공받아 저장
			int computer=(int)(Math.random()*3)+1;
			 
			//사용자에게 가위바위보 중 하나를 키보드로 입력받아 저장
			// => 입력값이 1~3 범위의 정수값이 아닌 경우 에러메세지 출력 후 재입력
			int user;
			while(true) {//입력값 검증을 위한 반복문
				System.out.print("가위바위보[1:가위,2:바위,3:보] >> ");
				user=scanner.nextInt();
				if(user>=1 && user<=3) break;//정상적인 값이 입력된 경우 반복문 종료
				//비정상적이 값이 입력된 경우 에러메세지 출력 후 반복문 실행
				System.out.println("[에러]가위, 바위, 보 중 하나를 선택하여 입력해 주세요.");
			}
			
			//컴퓨터와 사용자의 가위바위보 출력
			System.out.print("[입력]컴퓨터 >> ");
			switch (computer) {
			case 1: System.out.print("가위"); break;
			case 2: System.out.print("바위"); break;
			case 3: System.out.print("보"); break;
			}
			System.out.print(", 사용자 >> ");
			switch (user) {
			case 1: System.out.print("가위"); break;
			case 2: System.out.print("바위"); break;
			case 3: System.out.print("보"); break;
			}
			System.out.println();
			
			//컴퓨터와 사용자의 가위바위보 대결의 승패를 판단하여 출력
			// => 사용자가 이긴 경우 승리횟수를 1 증가하여 저장하고 대결 반복
			// => 사용자가 진 경우 대결 종료 - 반복문 종료
			if(computer==user) {
				System.out.println("[결과]컴퓨터와 사용자가 서로 비겼습니다.");
			} else if(computer==1 && user==2 || computer==2 && user==3 || computer==3 && user==1) {
				System.out.println("[결과]사용자가 컴퓨터에게 이겼습니다.");
				count++;//승리횟수 1 증가 >> 대결 반복
			} else {
				System.out.println("[결과]사용자가 컴퓨터에게 졌습니다.");
				break;//반복문 종료 - 대결 종료
			}
			System.out.println();
		}
		
		//승리횟수 출력
		System.out.println("=====================================================");
		if (count==0) {
			System.out.println("[메세지]사용자가 컴퓨터에게 한번도 이기지 못했습니다.");
		} else {
			System.out.println("[메세지]사용자가 컴퓨터에게 "+count+"번을 연속적으로 이겼습니다.");
		}
		
		scanner.close();
	}
}

0개의 댓글