C語言 三子棋遊戲

2021-10-19 10:42:01 字數 3378 閱讀 8594

test.c:放置主函式(main())和選單函式(menu())和遊戲函式(game())。

game.c:放置game()裡面的相應操作的函式,例如玩家移動(playermove(board)),電腦移動(computermove(board)),以及每一次移動之後列印當前棋盤內容的函式(displayboard(board))等等。由於這些函式內容較多,所以單獨放在乙個標頭檔案裡實現。

game.h:放置game.c裡面函式的宣告,以及需要用到的庫函式的標頭檔案(stdio.h,stdlib.h,time.h),在test.c和game.c中引用即可(#include " game.h ")

1.主函式(main () )

遊戲的大體執行流程

int

main()

}while

(input)

;return0;

}

2.選單函式(menu())玩家選擇玩遊戲或者退出

void

menu()

3.遊戲函式(game () )三子棋遊戲的操作步驟,裡面涉及到的函式會在game.c說明

void

game()

;//初始化棋盤內容全部為空格

initboard

(board)

;//列印棋盤

displayboard

(board)

;//下棋

//下棋過程

while(1

)//下棋結束,判斷誰贏了if(

'*'== ret)

printf

("玩家贏\n");

elseif(

'#'== ret)

printf

("電腦贏\n");

elseif(

'e'==ret)

printf

("平局\n");

}

ps:裡面的p陣列指標,實參為board,即棋盤第一行陣列的位址

1. initboard(初始化棋盤內容)

//初始化棋盤內容全部為空格

void

initboard

(char

(*p)[3

])}}

2.displayboard(展示棋盤內容)開始時的棋盤是這樣的

3.playermove(玩家下子)玩家下的子用*表示,需要注意兩點1.下的子是否在棋盤座標內 2.該座標是否已經被下子。

//玩家下子(*)

void

playermove

(char

(*p)[3

])else

}else

}}

4.computermove(電腦下子)電腦下的子用#表示,通過限定rand函式得到的下子座標肯定是在棋盤內了,只需考慮該座標是否已經被下子。

//電腦下子(#)

void

computermove

(char

(*p)[3

])}}

5.iswin(判斷輸贏)和isfull(判斷棋盤是否已經被下滿)判斷誰贏:棋盤三行或者三列或者兩條對角線都是同一種棋子,誰贏了就返回他所下的棋子的符號(*或者#)

要是都沒贏的話只剩兩種情況平局(棋盤下滿了)和繼續(棋盤沒下滿),通過isfull來判斷當前棋盤是否滿了來決定是否繼續下棋。

//判斷棋盤是否已經下滿

//下滿返回1

//沒下滿返回0

intisfull

(char

(*p)[3

])}return1;

}//判斷輸贏

//玩家贏了返回'*'

//電腦贏了返回'#'

//平局返回'e'

//繼續返回'c'

char

iswin

(char

(*p)[3

])//豎三列

for(i =

0; i <

3; i++

)//兩個對角線

if(p[0]

[0]== p[1]

[1]&& p[1]

[1]== p[2]

[2]&& p[0]

[0]!=

' ')

return p[0]

[0];

if(p[0]

[2]== p[1]

[1]&& p[1]

[1]== p[2]

[0]&& p[0]

[2]!=

' ')

return p[0]

[2];

//判斷平局還是繼續(電腦和玩家都沒贏。此時棋盤滿了就平局,沒滿就繼續)if(

isfull

(p))

return

'e';

else

return

'c';

}

包括函式的宣告和需要用到的c語言的庫函式

#include

#include

#include

void

initboard

(char

(*p)[3

]);void

displayboard

(char

(*p)[3

]);void

playermove

(char

(*p)[3

]);void

computermove

(char

(*p)[3

]);char

iswin

(char

(*p)[3]);

C語言 三子棋遊戲

用c語言第一次完成三子棋遊戲,感觸特別深刻。在寫 中我明白了,思路還有 風格的重要性,在這次 中發現,我們整理好邏輯想法 對寫 就不會有太多問題了 如下,若有改進的地方,還希望大家可以多多指點。include include include include define row 3 define c...

C語言三子棋遊戲

三子棋是一種只需要行 列 斜中任意一種情況三個相同棋子相連便勝利的遊戲。本程式中,要求玩家與電腦pk,棋盤座標用乙個二維陣列儲存起來,玩家通過鍵盤輸入座標落子,電腦通過srand和rand函式隨機產生座標落子。每次落子都需要判斷遊戲是否結束。1.遊戲選單,供使用者進入遊戲 2.建立初始化棋盤 3.列...

C語言 三子棋遊戲

今天,我們用c語言來寫乙個三子棋遊戲。在整個工程裡建立了三個檔案,分別為main.c game.c game.h,其中 main.c 用於放整個遊戲的框架 game.c與game.h組成玩遊戲的模組。如下 game.h define crt secure no warnings 1 include ...