《五子棋程序.doc》由会员分享,可在线阅读,更多相关《五子棋程序.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include using namespace std; int Hsheng(char a15);/判断H子是否获胜的函数 int Bsheng(char a15);/判断B子是否获胜的函数 int he(char a15);/判断是否平局(也就是棋盘下满了)的函数 void qipan(char a1515)/执行输出棋盘命令 for(int i=0;i15;i+) for(int j=0;j15;j+) coutaij; coutendl; int main() char a1515; int x,y; for(int i=0;i15;i+) for(int j=0;j15;j+) a
2、ij=*; qipan(a); while(1)/用循环语句执行H,B交替下子,这些while语句经过break结束 int a1=1; while(1) for(;a1;) coutxy; if(axy=H|axy=B)/判断是否已有子 cout已有子请重下=15|y=15)cout输入错误请重输,;continue; else axy=H; a1=0; break; qipan(a);/下好H子后将棋盘显示 if(Hsheng(a)/判断H子是否已经获胜 coutH子获胜endl; break; while(1)/下B子 coutxy; if(axy=H|axy=B|x=15|y=15)
3、for( ; axy=H|axy=B; ) cout已有子请重下; coutxy;continue; for ( ; x=15|y=15; ) cout输入错误请重输,; coutxy;continue ; axy=B;break; else axy=B; break; qipan(a);/再一次输出棋盘 if(Bsheng(a)/判断B子是否已经获胜 coutB子获胜endl; break; if(he(a)/判断是否平局 cout平局endl; break; return 0; int Hsheng(char a15) int i,j;/判断横着的5个是否都相等 for(i=0;i15;i
4、+) for(j=0;j15;j+) if(aij=H&aij+1=H&aij+2=H&aij+3=H&aij+4=H) return 1; for(j=0;j15;j+)/判断竖着的5个是否都相等 for(i=0;i15;i+) if(aij=H&ai+1j=H&ai+2j=H&ai+3j=H&ai+4j=H) return 1; for(i=0;i15;i+)/判断左斜5个 for(j=0;j15;j+) if(aij=H&ai+1j+1=H&ai+2j+2=H&ai+3j+3=H&ai+4j+4=H) return 1; for(i=0;i3;j-) if(aij=H&ai+1j-1=H
5、&ai+2j-2=H&ai+3j-3=H&ai+4j-4=H) return 1; return 0; int Bsheng(char a15)/同H,只是改字符 int i,j; for(i=0;i15;i+) for(j=0;j15;j+) if(aij=B&aij+1=B&aij+2=B&aij+3=x&aij+4=B) return 1; for(j=0;j15;j+) for(i=0;i15;i+) if(aij=B&ai+1j=B&ai+2j=B&ai+3j=B&ai+4j=B) return 1; for(i=0;i15;i+) for(j=0;j15;j+) if(aij=B&ai+1j+1=B&ai+2j+2=B&ai+3j+3=B&ai+4j+4=B) return 1; for(i=0;i3;j-) if(aij=B&ai+1j-1=B&ai+2j-2=B&ai+3j-3=B&ai+4j-4=B) return 1; return 0; int he(char a15) for(int i=0;i15;i+) for(int j=0;j15;j+) if(aij=*)/当棋盘全部子都不是*时才能return 1,即棋盘已下满 return 0; return 1;
限制150内