請撰寫一程式,亂數產生紙牌的數字,接著猜紙牌數字為何。
猜錯就重新猜,並限縮範圍(ex. "猜錯了,你的數字太小了,介於3~K,請重新輸入"),並累加次數。
最後答對了,請輸出猜的次數。
Java 程式碼
import java.util.Random; import java.util.Scanner; public class CardGuessingGame { public static void main(String[] args) { Random random = new Random(); int target = random.nextInt(13) + 1; // 隨機生成 1 到 13 的數字 int count = 0; Scanner scanner = new Scanner(System.in); while (true) { System.out.print("請輸入紙牌數字 1~K: "); String input = scanner.nextLine().trim(); int guess = parseCardValue(input); if (guess == -1) { System.out.println("輸入無效,請輸入數字或 J, Q, K。"); continue; } count++; if (guess < target) { System.out.printf("猜錯了,你的數字太小了,介於 %d~K,請重新輸入%n", guess + 1); } else if (guess > target) { System.out.printf("猜錯了,你的數字太大了,介於 1~%d,請重新輸入%n", guess - 1); } else { System.out.printf("猜對了,您共猜了 %d 次%n", count); break; } } scanner.close(); } private static int parseCardValue(String input) { switch (input) { case "J": return 11; case "Q": return 12; case "K": return 13; default: try { return Integer.parseInt(input); } catch (NumberFormatException e) { return -1; // 返回 -1 代表無效輸入 } } } }