c 實現三子棋

2021-10-17 11:49:43 字數 3725 閱讀 9436

2.顯示棋盤

3.玩家選擇座標進行下棋

4.電腦進行隨機座標下棋

5.每次落子後進行判斷輸贏

6.列印當前棋盤

二、**介紹

總結###1.1主要用於函式宣告,以及對棋盤的大小進行初始化

標頭檔案的作用:

1.方便開發:包含一些檔案需要的共同的常量,結構,型別定義,函式,變數申明;

2. 使函式的作用域從函式宣告的位置開始,而不是函式定義的位置(實踐總結)

3 .提供介面:對乙個軟體包來說可以提供乙個給外界的介面(例如: stdio.h)。

**如下():

#include

#include

#include

#define row 3

#define col 3

//初始化棋盤

void

initboard

(char board[row]

[col]

,int row,

int col)

;//列印棋盤

void

displayboard

(char board[row]

[col]

,int row,

int col)

;//玩家下棋

void

playermove

(char board[row]

[col]

,int row,

int col)

;//電腦下棋

void

computermove

(char board[row]

[col]

,int row,

int col)

;//檢查輸贏

char

checkwin

(char board[row]

[col]

,int row,

int col)

;

對頭檔案中的宣告過的函式進行編寫,完成函式功能

這樣做的好處就是,對於未來想更改**時,只需要對該檔案中的函式塊進行更改,不需要耗費大量的時間在主函式中更改。

**如下(示例):

#define _crt_secure_no_warnings 1

#include

"game.h"

//實現初始化棋盤函式,將二維陣列中的每乙個元素先初始化為空格

void

initboard

(char board[row]

[col]

,int row,

int col)}}

//棋盤顯示函式

void

displayboard

(char board[row]

[col]

,int row,

int col)

//列印資料

//下面使用迴圈巢狀,可以避免上述出現不能列印多行多列的情況

int i =0;

for(i =

0; i < row; i++

)printf

("\n");

//列印分隔符

if(i < row -1)

printf

("\n");

//每一行列印完後要記得換行}}

}//玩家下棋

void

playermove

(char board[row]

[col]

,int row,

int col)

else

}else}}

//電腦下棋

void

computermove

(char board[row]

[col]

,int row,

int col)}}

//根據返回的字元判斷下列情況。

//電腦贏-『#』

//玩家贏-『*』

//平局-『q』

//繼續-『c』

////檢查輸贏,(沒有產生輸贏時)當遍歷陣列中所有元素後,若沒有發現存在空格,則判斷為平局。

intisfull

(char board[row]

[col]

,int row,

int col)

}return1;

}char

checkwin

(char board[row]

[col]

,int row,

int col)

}//判斷三列

int j =0;

for(j =

0; j < col; j++)}

//對角線

if(board[0]

[0]== board[1]

[1]&& board[1]

[1]== board[2]

[2]&& board[1]

[1]!=

' ')

if(board[0]

[2]== board[1]

[1]&& board[1]

[1]== board[2]

[0]&& board[1]

[1]!=

' ')

//平局if(

isfull

(board,row,col)==1

)//因為該語句位於char checkwin(char board[row][col], int row, int col)內部,所以使用row,col

//遊戲繼續

return

'c';

}

乙個程式中只含有乙個main函式,為了**看起來邏輯性強,只需要在main函式中呼叫game函式檔案中的函式塊。這樣就避免了main函式過長修改起來不方便

**如下(示例):

#define _crt_secure_no_warnings 1

#include

"game.h"

//選單函式

void

memu()

void

game()

displayboard

(board, row, col)

;//列印棋盤

//電腦下棋

computermove

(board, row, col)

;//在標頭檔案中需要宣告

ret =

checkwin

(board, row, col)

;//檢測輸贏

if(ret !=

'c')

displayboard

(board, row, col)

;//列印棋盤}if

(ret ==

'*')

printf

("玩家贏了\n");

else

if(ret ==

'#')

printf

("電腦贏了\n");

else

if(ret ==

'q')

printf

("平局\n");

displayboard

(board, row, col);}

intmain()

}while

(input)

;return0;

}

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...

三子棋的實現

三子棋的實現還是比較簡單的,在寫 之前,你先構建一下遊戲的架構,這樣寫的時候思路比較清晰,不容易思想卡克,很容易就完成。再乙個,你寫的 並不是孤芳自賞的,而是要拿出來給別人看,別人可以清楚地看懂你的 這才是好 我們先來看三子棋的架構如何實現,這就看你的思維邏輯能力了。下面 很清晰的展現了這一架構 v...

三子棋的實現

c語言實現三子棋 c語言實現三子棋關鍵是運用到二維陣列的知識,使用多檔案程式設計來實現這個程式,我們需要建立乙個標頭檔案,兩個原始檔來實現 main.c chess.c chess.h 如下圖所示,玩家的棋為字元 x 電腦的棋為字元 0 接下來,我們看一下具體的 實現 首先,要完成對頭檔案的宣告 i...