利用C語言實現三子棋遊戲

2022-10-06 02:30:12 字數 2463 閱讀 9598

說明:該遊戲的實現需要用到三個檔案

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

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

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

test.c

1.主函式(main () )

遊戲的大體執行流程

int main()

} while (input);

return 0;

}2.選單函式(menu())

玩家選擇玩遊戲或者退出

void menu()

3.遊戲函式(game () )

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

程式設計客棧void game()

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

initboard(board);htbfdgbj

//列印棋盤

displayboard(board);

//下棋

//下棋過程

while (1)

//下棋結束,判斷誰贏了

if ('*' == ret)

printf("玩家贏\n");

else if ('#' == ret)

printf("電腦贏\n");

else if('e'==ret)

printf("平局\n");

}game.c

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

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

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

void initboard(char (*p)[3])

}}2.displayboard(展示棋盤內容)

開始時的棋盤是這樣的

void displayboard(char (*p)[3])

}3.playermove(玩家下子)

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

//玩家下子(*)

void playermove(char (*p)[3])

else }

else }

}4.computermove(電腦下子)

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

//電腦下子(#)

void computermove(char (*p)[3])

}}5.iswin(判斷輸贏)和isfull(判斷棋盤是否已經被下滿)

每下一步棋都有四種情況,玩家贏,電腦贏,平局,繼續,通過iswin來判斷:

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

//下滿返回1

//沒下滿返回0

int isfull(char(*p)[3])

} return 1;

}//判斷輸贏

//玩家贏了返回'*'

//電腦贏了返回'#'

//平局返回'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))

retuwww.cppcns.comrn 'e';

else

return 'c';

}game.h

包括函式的宣告和需要用到的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語言實現人機三子棋遊戲

1.首先遊戲介面是乙個選擇進入遊戲或者退出遊戲的簡單介面。2.進入遊戲之後出現的是乙個3 3的乙個棋盤。3.玩家通過輸入棋盤座標下棋,機器隨機落子。4.遊戲結束後可以選擇繼續遊戲或者退出遊戲。先上 標頭檔案 game.h define row 3 define col 3 include inclu...

三子棋遊戲(c語言實現)

一說到寫個三子棋遊戲,首先我們得想到有個棋盤初始化和棋盤列印函式。接下來,玩遊戲階段,人玩遊戲,電腦玩遊戲,各寫乙個函式,每次下完棋都得判斷有沒有人贏了遊戲,若有人贏了,遊戲退出,否則繼續遊戲。在這過程中,還有可能棋盤滿 了,所以寫個判斷棋盤是否滿的的函式,棋盤滿了,程式結束,沒人贏,此時就平局。當...

C語言實現三子棋遊戲

三子棋是乙個簡單的人機對戰遊戲在3 3的棋盤上,只要有一方下的子連成一條直線則顯示遊戲獲勝,遊戲結束。例如 想要用c語言編寫三子棋其實不難,主要把程式設計的思想順利清楚就很容易實現了。編寫三子棋遊戲我們可以先建立乙個 game.h檔案作為標頭檔案,用來宣告函式和定義一些常亮,在定義乙個game.c檔...