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

C 語言實現簡易井字棋:玩家 vs 「智障」電腦,完整邏輯與判斷輸贏

     編輯:關於C語言

C 語言實現簡易井字棋:玩家 vs 「智障」電腦,完整邏輯與判斷輸贏

井字棋(Tic-Tac-Toe)3x3 棋盤,玩家 X、電腦 O 輪流落子,三連線獲勝。本文實現完整遊戲邏輯:棋盤初始化/顯示、玩家輸入座標驗證、電腦簡單策略(首個空位)、輸贏平判斷(行/列/對角線)、主循環。

一、 核心數據結構

int board[3][3]; // ' ' 空,'X' 玩家,'O' 電腦

二、 關鍵函數

  • Init_Arr():全部置 ' '。
  • Print_Checkerboard():格式化輸出帶分隔線的棋盤。
  • Player(board, x, y):驗證座標合法(1-3)且位置為空,落子 'X',返回 1 成功。
  • Robot(board):掃描 board[0] 到 board[8],首個空位落子 'O'(極簡策略)。
  • Judge(board):檢查 8 條獲勝線(3 行、3 列、2 對角),返回 1 玩家勝、2 電腦勝、3 平局、0 繼續。

三、 主循環

while (1) {
    printf("Enter X,Y (1-3): "); scanf("%d %d", &x, &y);
    if (Player(board, x, y)) {
        Robot(board);
        Print_Checkerboard(board);
        int res = Judge(board);
        if (res == 1) { printf("Player win!\n"); break; }
        if (res == 2) { printf("Robot win!\n"); break; }
        if (res == 3) { printf("Draw!\n"); break; }
    } else printf("Invalid move!\n");
}

四、 電腦策略升級方向

  1. 防守優先:檢查玩家是否即將三連線,優先阻斷。
  2. 進攻優先:檢查自己是否可三連線,優先完成。
  3. Minimax 演算法:遞歸搜尋完整博弈樹,實現「完美 AI」(永不敗)。
  4. Alpha-Beta 剪枝:優化 Minimax 搜尋效率。

五、 總結

此實現涵蓋遊戲開發核心要素:狀態表示、渲染、輸入處理、規則驗證、AI 決策、終局判斷、主循環。是從「寫代碼」邁向「寫遊戲」的優秀入門項目。

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