C语言实现三子棋
本文实例为大家分享了C语言实现三子棋的具体代码,供大家参考,具体内容如下
题目:C语言实现三子棋
问题分析:首先用到数组,存储信息。棋盘的信息和棋子的信息
打印棋盘
读取棋子的位置
判断是否连子
打印棋盘
然后重复
代码如下:
#define_CRT_SECURE_NO_WARNINGS #include#include //数组沙盘 charGlobal_Gobang[10][10]; intGlobal_line,Global_pow; intGlobal_player; intGlobal_Count=0; //初始化棋盘 voidIniti_Gobang(){ for(inti=0;i<10;i++){ for(intj=0;j<10;j++){ Global_Gobang[i][j]='+'; } } } //画出棋盘 voidDraw_Gobang(){ for(inti=0;i<10;i++){ for(intj=0;j<10;j++){ printf("%c",Global_Gobang[i][j]); } printf("\n"); } } //在位置上下棋 voidPlay_Gobang(intplayer,intline,introw){ //intflag=Check_Gobang(); while(player==0||player==1) { if(player==0) { if(Global_Gobang[line-1][row-1]!='o'&&Global_Gobang[line-1][row-1]!='@'){ Global_Gobang[line-1][row-1]='o'; break; } else { printf("这个位置已经有棋子,请重新输入"); scanf("%d%d",&Global_line,&Global_pow); Play_Gobang(Global_player,Global_line,Global_pow); break; } } elseif(player==1) { if(Global_Gobang[line-1][row-1]!='o'&&Global_Gobang[line-1][row-1]!='@'){ Global_Gobang[line-1][row-1]='@'; break; } else { printf("这个位置已经有棋子,请重新输入"); scanf("%d%d",&Global_line,&Global_pow); Play_Gobang(Global_player,Global_line,Global_pow); break; } } } } //输入棋子的位置 voidInput_Gobang(){ if(Global_player==1){ printf("请1号玩家输入棋子的位置"); } elseif(Global_player==0) { printf("请2号玩家输入棋子的位置"); } scanf("%d%d",&Global_line,&Global_pow); system("cls");//刷新界面 } intCheck_Gobang(){ //ij为行列的表示,flag为判断棋盘是否满了的标志,flag=0,代表满了 inti,j,flag=0; //判断行是否成立 for(i=0;i<10;i++) for(j=0;j<8;j++) if(Global_Gobang[i][j]!='+'&&Global_Gobang[i][j]==Global_Gobang[i][j+1]&&Global_Gobang[i][j]==Global_Gobang[i][j+2]) return1; //判断列是否成立 for(i=0;i<10;i++) for(j=0;j<8;j++) if(Global_Gobang[i][j]!='+'&&Global_Gobang[j][i]==Global_Gobang[j+1][i]&&Global_Gobang[i][j]==Global_Gobang[j+2][i]) return1; //判断主对角线是否成立1 for(i=0;i<8;i++) for(j=0;j<8;j++) if(Global_Gobang[i][j]!='+'&&Global_Gobang[j][i]==Global_Gobang[j+1][i+1]&&Global_Gobang[i][j]==Global_Gobang[j+2][i+2]) return1; //判断副对角线是否成立2 for(i=2;i<10;i++) for(j=2;j<10;j++) if(Global_Gobang[i][j]!='+'&&Global_Gobang[j][i]==Global_Gobang[j-1][i-1]&&Global_Gobang[i][j]==Global_Gobang[j-2][i-2]) return1; for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(Global_Gobang[i][j]=='+') flag=1; } } if(flag==0) return0; } // intPlaying_Gobang(){ Global_Count++; if(Global_Count%2==1) Global_player=1; else Global_player=0; if(Check_Gobang()==1){ if(Global_player==1){ printf("玩家2号赢得胜利,游戏结束\n"); return1; } else{ printf("玩家1号赢得胜利,游戏结束\n"); return1; } } elseif(Check_Gobang()==0) { printf("棋盘已满,游戏结束\n"); } Input_Gobang(); Play_Gobang(Global_player,Global_line,Global_pow); Draw_Gobang(); } intmain(){ Initi_Gobang(); Draw_Gobang(); while(Global_Count<=100) if(Playing_Gobang()==0||Playing_Gobang()==1) break; system("pause"); return0; }
结果如下:
更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏玩不停
java经典小游戏汇总
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。