C語言 簡單實現三子棋

2021-07-24 10:09:32 字數 1612 閱讀 2821

今天我們來完成乙個三子棋的小遊戲。

遊戲要實現:

在3*3的棋盤上進行人機對弈,玩家輸入棋盤座標下棋,電腦通過產生隨機數下棋。最終,誰先完成三子相連,就是贏家。

若在棋盤下滿還未決出勝負,那就是平局。

為了完成這個遊戲,我們要建立三個檔案,分別為chessboard.h     chessboard.c    test.c

它們分別完成的任務是相關函式的宣告,相關函式的實現,以及主函式。

我們先看chessboard.h完成的部分。

#define _crt_secure_no_warnings 1

#define rows 3 //定義行數

#define cols 3 //定義列數

void init_board(char board[rows][cols],int x,int y); //初始化棋盤

void display_board(char board[rows][cols],int x,int y); //顯示棋盤

void player_move(char board[rows][cols],int x,int y); //玩家下棋

void computer_move(char board[rows][cols]); //電腦下棋

char check_win(char board[rows][cols],int x,int y); //判斷輸贏

再來看chessboard.c的部分。

#include "chessboard.h"

#include#includevoid init_board(char board[rows][cols],int x,int y) //初始化棋盤

else

} else

} }void computer_move(char board[rows][cols]) //電腦下棋,電腦下『0』

} }int board_full(char board[rows][cols],int x,int y) //檢查棋盤是否有空位

void game()

; //rows 和 cols的值巨集定義給出了

srand((unsigned)time(null)); //產生隨機值的種子

init_board(board,rows,cols);

display_board( board,rows,cols);

do printf("電腦正在下棋......\n");

sleep(1000);

computer_move(board);

display_board( board,rows,cols);

rt = check_win(board,rows,cols);

}while(rt==' ');

if(rt=='0')

if(rt=='x')

if(rt=='m')

}int main()

}while(input);

return 0;

}

以上就是三子棋的遊戲全部程式。

其中有部分寫的不是特別簡介,還可以進一步優化。

C語言簡單實現三子棋

首先我們在vs2013中建立乙個test.c和game.c檔案,再建立乙個test.h標頭檔案,其中game.c檔案裡面編寫三子棋的主要功能實現,test.c檔案用於三子棋功能測試,test.h檔案用於宣告函式。函式解釋 memset void dest,intc,size tcount dest為...

C語言三子棋實現

標頭檔案 ifndef game h define game h include time.h include stdlib.h include string.h include stdio.h define rows 3 define cols 3 void init board char arr...

C語言 三子棋

使用工具 vs2017 分為三部分 game.h 函式宣告 game.c 實現函式功能 test.c main函式 棋盤為3 3的矩陣 規則 1.每回合玩家與電腦只能放置一枚棋子 2.已有棋子的位置不能再放置棋子 3.若有一方的三枚棋子可連城一條直線,則勝利 4.若棋盤棋子已經布滿,但是雙方沒有一方...