說明:該遊戲的實現需要用到三個檔案
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檔...