C++实现五子棋小程序
这是一个用C++写的五子棋的小程序,关于A若是占据了已经下了的位置处理的不好。改动hight,与width,与q[][]可以将棋盘扩大。
#include#include usingnamespacestd; classqipan { public: qipan(){} ~qipan(){}; //向上下左右,斜的方向 charleft(intx,inty) {//检查是否合适 if(x>=1&&x<=hight&&y-1>=1&&y-1<=width) { returnq[x][y-1]; } else{ return'F'; } } charright(intx,inty) { if(x>=1&&x<=hight&&y+1>=1&&y+1<=width) { returnq[x][y+1]; } else{ return'F'; } } charup(intx,inty) { if(x-1>=1&&x-1<=hight&&y>=1&&y<=width) { returnq[x-1][y]; } else{ return'F'; } } chardown(intx,inty) { if(x+1>=1&&x+1<=hight&&y>=1&&y<=width) { returnq[x+1][y]; } else{ return'F'; } } charleft_up(intx,inty) { if(x-1>=1&&x-1<=hight&&y-1>=1&&y-1<=width) { returnq[x-1][y-1]; } else{ return'F'; } } charleft_down(intx,inty) { if(x+1>=1&&x+1<=hight&&y-1>=1&&y-1<=width) { returnq[x+1][y-1]; } else{ return'F'; } } charright_up(intx,inty) { if(x-1>=1&&x-1<=hight&&y+1>=1&&y+1<=width) { returnq[x-1][y+1]; } else{ return'F'; } } charright_down(intx,inty) { if(x+1>=1&&x+1<=hight&&y+1>=1&&y+1<=width) { returnq[x+1][y+1]; } else{ return'F'; } } voidinit_cur(){ h_cur=hang; l_cur=lie; } boolwin() { boolWIN=false; chartemp=q[hang][lie]; //以上为例,每次先看上面的5个,假如一样,iter++;否则break;再加上下的方向,同样iter++;最后iter+1==5,WIN=true;并且退出 //各个方向重复,上下左右,斜着的。 //赢了直接退出。 //显示是谁赢了 //左右 intcount_lr=1; init_cur(); for(inti=0;i<4;i++) { if(left(h_cur,l_cur)==temp) count_lr++; else break; l_cur--; } init_cur(); for(inti=0;i<4;i++) { if(right(h_cur,l_cur)==temp) count_lr++; else break; l_cur++; } if(count_lr==5) WIN=true; //上下 intcount_ud=1; init_cur(); for(inti=0;i<4;i++) { if(up(h_cur,l_cur)==temp) count_ud++; else break; h_cur--; } init_cur(); for(inti=0;i<4;i++) { if(down(h_cur,l_cur)==temp) count_ud++; else break; h_cur++; } if(count_ud==5) WIN=true; //左斜 intcount_lt=1; init_cur(); for(inti=0;i<4;i++) { if(left_up(h_cur,l_cur)==temp) count_lt++; else break; h_cur--; l_cur--; } init_cur(); for(inti=0;i<4;i++) { if(left_down(h_cur,l_cur)==temp) count_lt++; else break; h_cur++; l_cur--; } if(count_lt==5) WIN=true; //右边斜 intcount_rt=1; init_cur(); for(inti=0;i<4;i++) { if(right_up(h_cur,l_cur)==temp) count_rt++; else break; h_cur--; l_cur++; } init_cur(); for(inti=0;i<4;i++) { if(right_down(h_cur,l_cur)==temp) count_rt++; else break; h_cur++; l_cur++; } if(count_rt==5) WIN=true; returnWIN; } voidqipan_array() { for(inti=0;i >hang; cout<<"A输入列:"; cin>>lie; if(wzq.q[hang][lie]!='+') cout<<"输入的行列数字已经有人占据了"< >hang; cout<<"B输入列:"; cin>>lie; if(wzq.q[hang][lie]!='+') cout<<"输入的行列数字已经有人占据了"< 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。