首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言猜字遊戲:選單驅動、隨機數與輸入驗證完整實作

     編輯:關於C

遊戲流程

  1. 顯示選單:1 開始、0 退出。
  2. 選擇 1 → 產生 0~100 隨機數。
  3. 玩家反覆猜測,提示大/小/中。
  4. 猜中後回選單,選 0 結束程式。

完整優化程式碼

#include 
#include 
#include 

void print_menu() {
    puts("**********************");
    puts("**** 1. Start ********");
    puts("**** 0. Exit  ********");
    puts("**********************");
}

int main() {
    srand((unsigned)time(NULL)); // 僅一次!
    int choice = 1;

    puts("Welcome to Guess Number Game!");

    while (choice) {
        print_menu();
        printf("Choice: ");
        if (scanf("%d", &choice) != 1) {
            while (getchar() != '\n');
            puts("Invalid input!");
            continue;
        }

        switch (choice) {
            case 1: {
                int target = rand() % 101;
                int guess;
                while (1) {
                    printf("Guess (0-100): ");
                    if (scanf("%d", &guess) != 1) {
                        while (getchar() != '\n');
                        puts("Numbers only!");
                        continue;
                    }
                    if (guess > target) puts("Too large!");
                    else if (guess < target) puts("Too small!");
                    else { puts("Correct!"); break; }
                }
                break;
            }
            case 0:
                puts("Bye!");
                break;
            default:
                puts("Invalid option!");
        }
    }
    return 0;
}

關鍵最佳實踐

  • `srand` **只呼叫一次**,放在 `main` 開頭。
  • `scanf` 回傳值檢查 + 緩衝區清理,防止非數字輸入卡死。
  • 選單與遊戲邏輯分離,`switch` 控制流程清晰。
  • 變數命名語意化:`target`、`guess`、`choice`。

總結

猜字遊戲是 C 語言入門綜合練習:標準庫、隨機數、輸入驗證、選單迴圈、函式分離。掌握本範例結構,即具備開發文字介面互動程式的核心能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved