介绍
本篇文章为大家展示了使用C语言实现一个三子棋游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
游戏。h
# include# include # include #定义行3 #定义坳3//声明函数 空白InitBoard (char(行)(COL), int, int)上校;//打印棋盘 空白PrintBoard (char(行)(COL), int, int)上校;//玩家下的棋 空白PlayerMove (char(行)(COL), int, int)上校;//电脑下棋 空白ComputerMove (char(行)(COL), int, int)上校;//检测游戏输赢 char CheckWin (char(行)(COL), int, int)上校;
游戏。c
# include“game.h"//初始化棋盘 空白InitBoard (char(行)(COL), int, int)上校 { int i=0; (我=0;我& lt;行;我+ +) { int j=0; (j=0;j & lt;上校;j + +) { 董事会[我][j]=& # 39;& # 39;; } } }//打印棋盘 空白PrintBoard (char(行)(COL), int, int)上校 { int i=0; (我=0;我& lt;上校;我+ +) {//打印数据 int j=0; (j=0;j & lt;行;j + +) { printf (“% c“董事会[我][j]); 如果(j & lt;行- 1) { printf (“|”); } } printf (“\ n");//打印分隔符 如果我& lt;行- 1) { (j=0;j & lt;上校;j + +) { printf(“——产生绯闻); 如果(j & lt;col - 1) { printf (“|”); } } printf (“\ n"); } } }//玩家走 空白PlayerMove (char(行)(COL), int, int)上校 { int x=0; int y=0; printf(“玩家走:祝辞\ n"); 而(1) { printf(“请输入坐标:在“); scanf (“% d % d", x,, y); if (x祝辞=1,,x & lt;=行,,y祝辞=1,,y & lt;=坳) { 如果董事会[x - 1] [y - 1)==& # 39;& # 39;) { 董事会(x - 1) (y - 1)=& # 39; * & # 39;;//落子 打破; } 其他的 { printf(“该坐标已被占用,请重新输入\ n"); } } 其他的 { printf(“坐标输入非法,请重新输入\ n"); } } }//电脑走 空白ComputerMove (char(行)(COL), int, int)上校 { printf(“电脑走\ n"); 而(1) { int x=rand() %行;//0 - 2 int y=rand() %坳;//0 - 2 如果董事会[x] [y]==& # 39;& # 39;) { 董事会[x] [y]=& # 39; # & # 39;; 打破; } } } 静态int IsFull (char(行)(COL), int, int)上校 { int i=0; int j=0; (我=0;我& lt;行;我+ +) { (j=0;j & lt;上校;j + +) { 如果董事会[我][j]==& # 39;& # 39;) { 返回0; } } } 返回1;//没空格 }//判断输赢 char CheckWin (char(行)(COL), int, int)上校 { int i=0;//行判断 (我=0;我& lt;行;我+ +) { 如果板[我][0]==板[我][1],,板[我][1]==板[我][2],,董事会[我][0]!=& # 39;& # 39;) { 滑板[我][0]; } }//列判断 (我=0;我& lt;上校;我+ +) { 如果董事会[0][我]==董事会[1][我],,董事会[1][我]==委员会[2](我),,董事会[1][我]!=& # 39;& # 39;) { 滑板[0][我]; } }//对角线判断 如果董事会[0][0]==董事会[1][1],,董事会[1][1][2][2]==董事会,,董事会[1][1]!=& # 39;& # 39;) { 滑板[1][1]; } 如果董事会[0][2]==董事会[1][1],,董事会[1][1][2][0]==董事会,,董事会[1][1]!=& # 39;& # 39;) { 滑板[1][1]; }//判断是否平局//判断期盼是否满了键盘是否有空格 如果(IsFull(板、行、坳)==1) { 返回& # 39;提问# 39;; } 其他的 返回& # 39;c # 39;; }
测试。c
# include“game.h" 无效的菜单() { printf (“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n"); printf (“* * * * * * * * * 1。打* * * * * * * * * * * \ n"); printf (“* * * * * * * * * 0。出口* * * * * * * * * * * \ n"); printf (“* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n"); }//设计三子棋游戏 空游戏() { char ret=0;//存储数据的 char董事会(行)(COL)={0};//数组应该初始化为空格 InitBoard(板、行、坳);//打印棋盘 PrintBoard(板、行、坳);//分析发现在玩游戏的过程中会出现的情况//1。玩家赢- & # 39;* & # 39;//2。电脑赢- & # 39;# & # 39;//3。平局了,& # 39;提问# 39;//4。继续- & # 39;c # 39; 而(1) { PlayerMove(板、行、坳);//判断输赢 ret=CheckWin(板、行、坳); 如果(ret !=& # 39; c # 39;) 打破; PrintBoard(板、行、坳); ComputerMove(板、行、坳);//判断输赢 ret=CheckWin(板、行、坳); 如果(ret !=& # 39; c # 39;) 打破; PrintBoard(板、行、坳); } 如果(ret==& # 39; * & # 39;) printf(“玩家赢\ n"); else if (ret==& # 39; # & # 39;) printf(“电脑赢\ n"); else if (ret==& # 39;提问# 39;) printf(“平局\ n"); PrintBoard(板、行、坳); } int main () { 输入int=0; 将srand ((unsigned int)时间(NULL)); 做 { 菜单(); printf(“请选择:在“); scanf (“% d",,输入); 开关(输入) { 案例1: 游戏(); 打破; 例0: printf(“退出游戏\ n"); 打破; 默认值: printf(“选择错误\ n"); 打破; } },(输入); 返回0; }使用C语言实现一个三子棋游戏