- 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();
}
}