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

C語言入門項目:從零實現猜數字遊戲

     編輯:關於C語言

C語言入門項目:從零實現猜數字遊戲

猜數字遊戲是 C 語言初學者練習循環、隨機數、用戶交互的經典項目。本文帶你一步步構建一個功能完整的控制台猜數字遊戲,包含菜單系統、隨機數生成、輸入驗證和遊戲邏輯。

核心功能模塊

  • 菜單系統:顯示歡迎界面,提供「開始遊戲」和「退出」選項
  • 隨機數生成:使用 srand() 和 rand() 生成 0-100 之間的隨機數
  • 遊戲主循環:玩家反覆輸入猜測,程序提示「大了」「小了」直到猜中
  • 輸入處理:使用 scanf() 讀取用戶輸入

完整代碼實現

#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#include <time.h>

void show_menu() {
    printf("********************* 歡迎玩猜數字遊戲 ***********************\n");
    printf("********************* 輸入 1 進入猜數字遊戲 ***********************\n");
    printf("********************* 輸入 0 退出猜數字遊戲 ***********************\n");
}

int main() {
    int choice = 1;
    while (choice) {
        show_menu();
        printf("請選擇>:");
        scanf("%d", &choice);
        switch (choice) {
            case 1: {
                int target = 0, guess = 0;
                srand((unsigned int)time(NULL));      // 以當前時間為種子
                target = rand() % 101;                // 生成 0-100 隨機數
                while (1) {
                    printf("請輸入你猜的數:");
                    scanf("%d", &guess);
                    if (guess < target) {
                        printf("你答小了\n");
                    } else if (guess > target) {
                        printf("你答大了\n");
                    } else {
                        printf("恭喜你答對了!\n");
                        break;
                    }
                }
                break;
            }
            case 0:
                printf("遊戲結束,再見!\n");
                break;
            default:
                printf("無效選項,請重新輸入。\n");
                break;
        }
    }
    system("pause");
    return 0;
}

關鍵知識點解析

  1. 隨機數種子:srand((unsigned int)time(NULL)) 確保每次運行生成不同序列
  2. 取模運算:rand() % 101 將隨機數限制在 0-100 範圍
  3. 無限循環與跳出:while(1) 配合 break 實現猜對即停止
  4. 模塊化設計:菜單顯示獨立為 show_menu() 函數,提高代碼可讀性

進階優化建議

  • 添加輸入合法性檢查,防止非數字輸入導致程序異常
  • 記錄猜測次數,增加計分系統
  • 實現多輪遊戲,詢問玩家是否繼續
  • 增加難度等級(如 1-1000、限制猜測次數)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved