三子棋(C語言)

2021-09-28 19:26:34 字數 4660 閱讀 1152

第一步:我們要先建立遊戲的選單,利用下面的函式建立選單:

第二步:我們要實現三子棋遊戲的函式,要分幾個模組來思考

1、要根據選單選擇(0 or 1,以及選錯時的應對操作)

我們利用do…while迴圈,至少要迴圈一次

int input=

0; //輸入選項do}

2、建立棋盤。要有井字棋的初始化棋盤,我們用函式initboard實現,並且要將他展示出來用display函式實現

void

initboard

(char board[row]

[col]

,int row,

int col)}}

void

displayboard

(char board[row]

[col]

,int row,

int col)

//展示棋盤

3、用函式實現玩家走的過程,按照從1開始,並判斷座標是否合法,並且走完後都要將棋盤列印出來,利用上述的display函式實現

void

playermove

(char board[row]

[col]

,int row,

int col)

else

}else

}}

4、用函式實現電腦走的過程,並且走完後都要將棋盤列印出來,利用上述的display函式實現

4、判斷輸贏,尤其是平局的情況

利用isfull函式判斷棋盤是否被填滿,利用iswin函式判斷輸贏情況(這裡沒有想到更全面的判斷法)

//判斷棋盤是否填滿

static

intisfull

(char board[row]

[col]

,int row,

int col)}}

return1;

}//判斷輸贏

char

iswin

(char board[row]

[col]

,int row,

int col)

}for

(j =

0; j < col; j++)}

if(board[0]

[0]== board[1]

[1]&& board[1]

[1]== board[2]

[2]&& board[0]

[0]!=

' ')

if(board[2]

[0]== board[1]

[1]&& board[1]

[1]== board[0]

[2]&& board[0]

[2]!=

' ')

//判斷平局(棋盤是否填滿)if(

isfull

(board, row, col)==1

)return

'c';

//繼續走

第三步 遊戲實現

全部**實現:

game.h:

#define  _crt_secure_no_warnings 1

#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

iswin

(char board[row]

[col]

,int row,

int col)

;

game.c:

#include

"game.h"

void

initboard

(char board[row]

[col]

,int row,

int col)}}

void

displayboard

(char board[row]

[col]

,int row,

int col)

}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)}}

static

intisfull

(char board[row]

[col]

,int row,

int col)}}

return1;

}char

iswin

(char board[row]

[col]

,int row,

int col)

}for

(j =

0; j < col; j++)}

if(board[0]

[0]== board[1]

[1]&& board[1]

[1]== board[2]

[2]&& board[0]

[0]!=

' ')

if(board[2]

[0]== board[1]

[1]&& board[1]

[1]== board[0]

[2]&& board[0]

[2]!=

' ')if(

isfull

(board, row, col)==1

)return

'c';

}

test.c:

#include

"game.h"

void

menu()

void

game()

;initboard

(board, row, col)

;displayboard

(board, row, col)

;while(1

)computermove

(board, row, col)

;displayboard

(board, row, col)

; ret =

iswin

(board, row, col);if

(ret !=

'c')}if

(ret ==

'*')

else

if(ret ==

'#')

else

}void

test()

}while

(input);}

intmain()

希望不足之處,能被指出來,也希望能找到完善的方法,謝謝大家!

C語言 三子棋

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

三子棋(c語言)

今天做了乙個三子棋小遊戲,寫了好久卻只完成了一部分,先把這部分分享給大家吧!望大家給點建議和指導,最後判斷輸贏部分到現在還沒構思出來,嘿嘿!game.h define crt secure no warnings 1 ifndef game h define game h include inclu...

c語言 三子棋

c語言三子棋 來完善一下三子棋 game.h define crt secure no warnings 1 ifndef game h define game h include include include include define row 3 define col 3 void menu...