[Java]가위 바위 보 게임

2025. 2. 11. 17:23·코딩테스트/Java

문제

5번의 가위바위보 게임을 해서 승리한 횟수 상당의 상품을 받아가는 게임을 만들어보자.

1. 5번의 가위바위보를 진행합니다.

2. 유저는 매 판마다 “가위”, “바위”, “보” 중 하나를 입력합니다. 잘못된 입력을 받았다면 잘못된 입력입니다! 를 출력해주세요. 

3. 컴퓨터는 가위 , 바위, 보 중 랜덤하게 하나를 낼 수 있습니다.

4. 매판마다 진행한 가위 바위 보의 승패에 대한 결과를 출력됩니다.

5. 5판을 모두 마치면 승리한 횟수에 걸맞는 경품을 획득할 수 있습니다.

 

 

실행예시

 

 

import java.util.Map;
import java.util.Random;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
import java.util.List;

public class Main {
	private String[] rcp = {"가위","바위","보"};
	public String Randompick() {
		//랜덤 객체 생성
		Random random =new Random();
		
		//rcp에 있는 배열 인덱스를 랜덤으로 선정
		String computerPick = rcp[random.nextInt(rcp.length)];
		return computerPick;
	}
	public static void main(String[] args) {
		
		Main randompickeditor = new Main();
		int chance = 5;
		int win = 0;
		
		//리스트 메소니 contain을 이용해 해당값 유무확인을 위한 배열->리스트 전환
		List<String>rcpList = Arrays.asList(randompickeditor.rcp);
		
		//Map 함수를 통해 <키,값> 선정
		Map<Integer,String> gifts =new HashMap<Integer,String>();
		gifts.put(0, "꽝");
		gifts.put(1, "곰돌이 인형");
		gifts.put(2, "스파르타 랜드 입장권");
		gifts.put(3, "스파르타 캐니언 항공 투어권");
		gifts.put(4, "호텔 스파르타 숙박권");
		gifts.put(5, "스파르테이트 항공권");
		
		Scanner sc=new Scanner(System.in);
		while(chance>0) {
			System.out.println("가위 바위 보 중 하나를 입력해주세요!");
			String userChoice = sc.nextLine();    
			String compick = randompickeditor.Randompick();
			
			//리스트에 해당하는 값을 입력했는지 확인
			if(!rcpList.contains(userChoice))
			{
				System.out.println("잘못된 입력입니다.");
				continue;
			}
			
			//가위바위보 알고리즘
			if(userChoice.equals("가위")) {
				if(compick.equals("바위"))
				{
					System.out.println("당신은 가위 상대는 바위로 졌습니다.");
				}
				else if(compick.equals("보"))
				{
					System.out.println("당신은 가위 상대는 보로 이겼습니다.");
					win++;
				}
				else {
					System.out.println("당신은 가위 상대도 가위로 비겼습니다.");
				}	
			}
			
			if(userChoice.equals("바위")) {
				if(compick.equals("가위"))
				{
					System.out.println("당신은 바위 상대는 가위로 이습니다.");
					win++;
				}
				else if(compick.equals("보"))
				{
					System.out.println("당신은 바위 상대는 보로 졌습니다.");
				}
				else {
					System.out.println("당신은 바위 상대도 보로 비겼습니다.");
				}	
			}
			
			if(userChoice.equals("보")) {
				if(compick.equals("바위"))
				{
					System.out.println("당신은 보 상대는 바위로 이겼습니다.");
					win++;
				}
				else if(compick.equals("가위"))
				{
					System.out.println("당신은 보 상대는 가위로 졌습니다.");
				}
				else {
					System.out.println("당신은 보 상대도 보로 비겼습니다.");
				}	
			}
			
			//기회 차감
			chance--;
			
			//기회가 다 소모되면 승리별로 상품확인
			if(chance==0) {
			System.out.println("축하합니다. 총 "+ win +" 회 승리하여 경품으로"+gifts.get(win)+"을 획득하셨습니다.!");
			}
		}
		
			}
}

 

 

✒️ 회고

- 단순하게 if문을 사용하여 코딩하였기 때문에 생각보다 코드가 길다고 생각했다. 나중엔 가위바위보 알고리즘에 대해 공부하여 간단하게 만들어보고 싶다.

- 배열을 List로 변형하여 주요 메소드들을 사용할 수 있는 방법이 자주 사용될 거 같다. 이 부분은 더 실습을 통해 숙지 해야겠다.

'코딩테스트 > Java' 카테고리의 다른 글

[Java]정수 제곱근 판별(Math함수)  (0) 2025.03.04
[Java]자연수 뒤집어 배열로 만들기(valueOf()사용)  (0) 2025.03.04
[Java]Lv3. 단어 맞추기 게임  (1) 2025.02.10
[Java]Lv2. 스파르타 자판기  (0) 2025.02.07
[Java]Lv1. 랜덤 닉네임 생성기  (0) 2025.02.06
'코딩테스트/Java' 카테고리의 다른 글
  • [Java]정수 제곱근 판별(Math함수)
  • [Java]자연수 뒤집어 배열로 만들기(valueOf()사용)
  • [Java]Lv3. 단어 맞추기 게임
  • [Java]Lv2. 스파르타 자판기
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (131) N
      • JavaScript (8)
      • SQL (10) N
      • 코딩테스트 (29)
        • Java (15)
        • SQL (12)
      • Java (10)
      • 프로젝트 (20)
        • 트러블슈팅 (6)
        • 프로젝트 회고 (12)
      • git,Github (2)
      • TIL (34) N
      • Spring (16) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스파르타 코딩 #부트캠프 #첫ot
    java #arraylist #list #배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[Java]가위 바위 보 게임
상단으로

티스토리툴바