자바

가위바위보

148june 2025. 2. 10. 15:27
  • 5번의 가위바위보 게임을 해서 승리한 횟수 상당의 상품을 받아가는 게임을 만들어봐요

 

  • 5번의 가위바위보를 진행합니다.
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;

int totalRounds = 5;  // 총 5번 진행
        int numOfWins = 0;  // 승리 횟수 저장

        System.out.println("💥 5번의 가위바위보 게임을 시작합니다! 💥");

        for (int round = 1; round <= totalRounds; round++) {
            System.out.print("\n[" + round + "번째 판] 가위, 바위, 보 중 하나를 입력해주세요: ");
            String userInput = scanner.nextLine().trim();
  • 유저는 매 판마다 “가위”, “바위”, “보” 중 하나를 입력합니다.
    • 잘못된 입력을 받았다면 잘못된 입력입니다! 를 출력해주세요.
             Scanner scanner = new Scanner(System.in);
            // 입력값 검증
            if (!userInput.equals("바위") && !userInput.equals("가위") && !userInput.equals("보")) {
                System.out.println("⚠ 잘못된 입력입니다! 다시 입력해주세요.");
                round--;  // 잘못된 입력 시 해당 라운드 다시 진행
                continue;
            }
  • 컴퓨터는 가위 , 바위, 보 중 랜덤하게 하나를 낼 수 있습니다.
                  // 가위바위보 선택지 배열
        String[] rsp = {"가위", "바위", "보"};
        Random random = new Random();

          // 컴퓨터 랜덤 선택
            String computerChoice = rsp[random.nextInt(3)];
            System.out.println("🆚 당신: " + userInput + " | 상대: " + computerChoice);
  • 매판마다 진행한 가위 바위 보의 승패에 대한 결과를 출력됩니다.
            // 승패 판정
            if (userInput.equals(computerChoice)) {
                System.out.println("🤝 결과: 비겼습니다!");
            } else if (
                (userInput.equals("가위") && computerChoice.equals("보")) ||
                (userInput.equals("바위") && computerChoice.equals("가위")) ||
                (userInput.equals("보") && computerChoice.equals("바위"))
            ) {
                System.out.println("🎉 결과: 이겼습니다!");
                numOfWins++;  // 승리 횟수 증가
            } else {
                System.out.println("😢 결과: 졌습니다...");
            }
        }
  • 5판을 모두 마치면 승리한 횟수에 걸맞는 경품을 획득할 수 있습니다.
        // 승리 횟수별 경품 목록
        Map<Integer, String> gifts = new HashMap<>();
        gifts.put(0, "꽝");
        gifts.put(1, "곰돌이 인형");
        gifts.put(2, "스파르타 랜드 입장권");
        gifts.put(3, "스파르타 캐니언 항공 투어권");
        gifts.put(4, "호텔 스파르타 숙박권");
        gifts.put(5, "스파르테이트 항공권");

        System.out.println("\n🏆 총 " + numOfWins + "회 승리하셨습니다!");
        System.out.println("🎁 당신이 획득한 경품: [" + gifts.get(numOfWins) + "] 🎊");
        System.out.println("게임이 종료되었습니다. 감사합니다! 😊");

        scanner.close();
    }
}

 전체 코드

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

public class RockPaperScissorsGame {
    public static void main(String[] args) {
        // 1. 게임 기본 설정
        String[] rsp = {"가위", "바위", "보"};
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        
        int totalRounds = 5;
        int numOfWins = 0;

        System.out.println("💥 5번의 가위바위보 게임을 시작합니다! 💥");

        // 2. 5번의 가위바위보 진행
        for (int round = 1; round <= totalRounds; round++) {
            System.out.print("\n[" + round + "번째 판] 가위, 바위, 보 중 하나를 입력해주세요: ");
            String userInput = scanner.nextLine().trim();

            // 3. 잘못된 입력 처리
            if (!userInput.equals("바위") && !userInput.equals("가위") && !userInput.equals("보")) {
                System.out.println("⚠ 잘못된 입력입니다! 다시 입력해주세요.");
                round--;  
                continue;
            }

            // 4. 컴퓨터 랜덤 선택
            String computerChoice = rsp[random.nextInt(3)];
            System.out.println("🆚 당신: " + userInput + " | 상대: " + computerChoice);

            // 5. 승패 판정
            if (userInput.equals(computerChoice)) {
                System.out.println("🤝 결과: 비겼습니다!");
            } else if (
                (userInput.equals("가위") && computerChoice.equals("보")) ||
                (userInput.equals("바위") && computerChoice.equals("가위")) ||
                (userInput.equals("보") && computerChoice.equals("바위"))
            ) {
                System.out.println("🎉 결과: 이겼습니다!");
                numOfWins++;
            } else {
                System.out.println("😢 결과: 졌습니다...");
            }
        }

        // 6. 승리 횟수에 따른 경품 지급
        Map<Integer, String> gifts = new HashMap<>();
        gifts.put(0, "꽝");
        gifts.put(1, "곰돌이 인형");
        gifts.put(2, "스파르타 랜드 입장권");
        gifts.put(3, "스파르타 캐니언 항공 투어권");
        gifts.put(4, "호텔 스파르타 숙박권");
        gifts.put(5, "스파르테이트 항공권");

        System.out.println("\n🏆 총 " + numOfWins + "회 승리하셨습니다!");
        System.out.println("🎁 당신이 획득한 경품: [" + gifts.get(numOfWins) + "] 🎊");
        System.out.println("게임이 종료되었습니다. 감사합니다! 😊");

        scanner.close();
    }
}

'자바' 카테고리의 다른 글

문제  (0) 2025.02.24
for문과 향상된 for문  (0) 2025.02.24
알파벳 맞추기  (3) 2025.02.06
문제2  (0) 2025.02.05
랜덤 키워드 출력  (1) 2025.02.05