寻找五子棋源代码c++
# include & ltbits/stdc++。h & gt
# include & ltwindows.h & gt
# include & ltconio.h & gt
# include & ltctime & gt
使用命名空间std
void gotoxy(int x,int y) {
COORD pos = {x,y };
HANDLE hOut = GetStdHandle(STD _ OUTPUT _ HANDLE);
SetConsoleCursorPosition(hOut,pos);
}//将光标移动到x和y点?
int mp[16][16]= {0},x1=0,x2 = 0;//地图,用来搜索五个孩子?
作废打印(int x) {
gotoxy(x,1);
cout & lt& lt"┬";
for(int I = 2;我& lt=14;i++) {
gotoxy(x,I);
cout & lt& lt"┼";
}
gotoxy(x,15);
cout & lt& lt"┴";
}//输出棋盘的中间部分?
void gotoc() {
系统(“cls”);
gotoxy(55,10);
cout & lt& lt“五个?儿子?棋”;
gotoxy(56,20);
cout & lt& lt"正在加载...";
gotoxy(55,21);
cout & lt& lt“作者:北辰”;
for(int j = 0;j & lt100;j++) {
睡眠(17);
gotoxy(j+3,15);
cout & lt& lt" " " & lt& ltj & lt& lt"%";
gotoxy(j,15);
cout & lt& lt"■";
}
系统(“cls”);
for(int I = 0;我& lt100;i++) {
for(int j = 0;j & lt40;j++) {
gotoxy(i,j);
cout & lt& lt"■";
//set color(rand()% 10);
}
}
系统(“cls”);
}//加载接口函数?
int main() {
gotoc();//加载?
for(int I = 2;我& lt=30;i+=2) {
gotoxy(i,0);
cout & lt& ltI/2;
}//横坐标?
for(int I = 1;我& lt=15;i++) {
gotoxy(0,I);
cout & lt& lt我;
}//纵坐标?
gotoxy(21);
cout & lt& lt"┌";
for(int I = 2;我& lt=14;i++) {
gotoxy(2,I);
cout & lt& lt"├";
}
gotoxy(215);
cout & lt& lt"└";//输出棋盘左侧?
for(int I = 4;我& lt=28;i+=2) {
印刷(一);
}//用循环输出棋盘的中间部分?
gotoxy(30,1);
cout & lt& lt"┐";
for(int I = 2;我& lt=14;i++) {
gotoxy(30,I);
cout & lt& lt"┤";
}
gotoxy(3015);
cout & lt& lt"┘";//输出棋盘的右边
bool l = 0;//无用标志?
long long m = 2;//这个很重要。用来判断白棋该走还是黑棋该走。每次++结束,都判定为偶数。白棋是奇数,黑棋(一般以旗判断,这是我个人的喜好)?
gotoxy(0,17);
cout & lt& lt“游戏描述:白棋先行,移动时请输入坐标,其他不用我说了”;//描述,一定要看?
while(l=1) {
gotoxy(3216);
int x,y;
CIN & gt;& gtx & gt& gty;//读入xy坐标?
gotoxy(3216);
cout & lt& lt" ? ";
if(mp[x][y]!=0) {?
gotoxy(3216);
cout & lt& lt“这个位置被移动了!”;
睡眠(1000);
gotoxy(3216);
cout & lt& lt" ";
继续;
}//很重要,用来判断这个位置是否定了?
if(x & gt;15 & amp;& ampy & lt=15) {
gotoxy(3216);
cout & lt& lt" X坐标超出了棋盘的范围!";
睡眠(1000);
gotoxy(3216);
cout & lt& lt" ";
继续;
}?
如果(y & gt15 & amp;& ampx & lt=15) {
gotoxy(3216);
cout & lt& lt" Y坐标超出棋盘范围!";
睡眠(1000);
gotoxy(3216);
cout & lt& lt" ";
继续;
}
如果(y & gt15 & amp;& ampx & gt15) {
gotoxy(3216);
cout & lt& lt“X和Y坐标都不在棋盘范围内!”;
睡眠(1000);
gotoxy(3216);
cout & lt& lt" ";
继续;
}//以上三个if用来判断是否超过棋盘大小?
gotoxy(x*2,y);
如果(m%2==0) {//是偶数,下哪个白棋?
cout & lt& lt"●";//输出棋子?
MP[x][y]= 1;
//横坐标搜索是连成五的吗?
if(MP[x+1][y]= = 1 & amp;& ampMP[x+2][y]= = 1 & amp;& ampMP[x+3][y]= = 1 & amp;& ampmp[x+4][y]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-1][y]= = 1 & amp;& ampMP[x+1][y]= = 1 & amp;& ampMP[x+2][y]= = 1 & amp;& ampmp[x+3][y]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-2][y]= = 1 & amp;& ampMP[x-1][y]= = 1 & amp;& ampMP[x+1][y]= = 1 & amp;& ampmp[x+2][y]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-3][y]= = 1 & amp;& ampMP[x-2][y]= = 1 & amp;& ampMP[x-1][y]= = 1 & amp;& ampmp[x+1][y]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-4][y]= = 1 & amp;& ampMP[x-3][y]= = 1 & amp;& ampMP[x-2][y]= = 1 & amp;& ampmp[x-1][y]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
//垂直
if(MP[x][y+1]= = 1 & amp;& ampMP[x][y+2]= = 1 & amp;& ampMP[x][y+3]= = 1 & amp;& ampmp[x][y+4]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x][y-1]= = 1 & amp;& ampMP[x][y+1]= = 1 & amp;& ampMP[x][y+2]= = 1 & amp;& ampmp[x][y+3]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x][y-2]= = 1 & amp;& ampMP[x][y-1]= = 1 & amp;& ampMP[x][y+1]= = 1 & amp;& ampmp[x][y+2]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x][y-3]= = 1 & amp;& ampMP[x][y-2]= = 1 & amp;& ampMP[x][y-1]= = 1 & amp;& ampmp[x][y+1]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x][y-4]= = 1 & amp;& ampMP[x][y-3]= = 1 & amp;& ampMP[x][y-2]= = 1 & amp;& ampmp[x][y-1]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
//斜“\”
if(MP[x+1][y+1]= = 1 & amp;& ampMP[x+2][y+2]= = 1 & amp;& ampMP[x+3][y+3]= = 1 & amp;& ampmp[x+4][y+4]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-1][y-1]= = 1 & amp;& ampMP[x+1][y+1]= 1 & amp;& ampMP[x+2][y+2]= = 1 & amp;& ampmp[x+3][y+3]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-2][y-2]= = 1 & amp;& ampMP[x-1][y-1]= = 1。& ampMP[x+1][y+1]= 1 & amp;& ampmp[x+2][y+2]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-3][y-3]= = 1 & amp;& ampMP[x-2][y-2]= = 1 & amp;& ampMP[x-1][y-1]= = 1。& ampMP[x+1][y+1]= = 1){
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x-4][y-4]= = 1 & amp;& ampMP[x-3][y-3]= = 1 & amp;& ampMP[x-2][y-2]= = 1 & amp;& ampMP[x-1][y-1]= = 1){
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
//倾斜“/”
if(MP[x-1][y+1]= = 1 & amp;& ampMP[x-2][y+2]= = 1 & amp;& ampMP[x-3][y+3]= = 1 & amp;& ampmp[x-4][y+4]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x+1][y-1]= = 1 & amp;& ampMP[x-1][y+1]= 1 & amp;& ampMP[x-2][y+2]= = 1 & amp;& ampmp[x-3][y+3]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x+2][y-2]= = 1 & amp;& ampMP[x+1][y-1]= = 1。& ampMP[x-1][y+1]= 1 & amp;& ampmp[x-2][y+2]==1) {
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x+3][y-3]= = 1 & amp;& ampMP[x+2][y-2]= = 1 & amp;& ampMP[x+1][y-1]= = 1。& ampMP[x-1][y+1]= = 1){
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
if(MP[x+4][y-4]= = 1 & amp;& ampMP[x+3][y-3]= = 1 & amp;& ampMP[x+2][y-2]= = 1 & amp;& ampMP[x+1][y-1]= = 1){
gotoxy(3216);
cout & lt& lt“白棋赢了!”;
返回0;
}
} else如果(m%2==1) {//是奇数,哪个黑棋?
cout & lt& lt"○";
MP[x][y]= 2;
//水平
if(MP[x+1][y]= = 2 & amp;& ampMP[x+2][y]= = 2 & amp;& ampMP[x+3][y]= = 2 & amp;& ampmp[x+4][y]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-1][y]= = 2 & amp;& ampMP[x+1][y]= = 2 & amp;& ampMP[x+2][y]= = 2 & amp;& ampmp[x+3][y]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-2][y]= = 2 & amp;& ampMP[x-1][y]= = 2 & amp;& ampMP[x+1][y]= = 2 & amp;& ampmp[x+2][y]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-3][y]= = 2 & amp;& ampMP[x-2][y]= = 2 & amp;& ampMP[x-1][y]= = 2 & amp;& ampmp[x+1][y]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-4][y]= = 2 & amp;& ampMP[x-3][y]= = 2 & amp;& ampMP[x-2][y]= = 2 & amp;& ampmp[x-1][y]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
//垂直
if(MP[x][y+1]= = 2 & amp;& ampMP[x][y+2]= = 2 & amp;& ampMP[x][y+3]= = 2 & amp;& ampmp[x][y+4]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x][y-1]= = 2 & amp;& ampMP[x][y+1]= = 2 & amp;& ampMP[x][y+2]= = 2 & amp;& ampmp[x][y+3]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x][y-2]= = 2 & amp;& ampMP[x][y-1]= 2 & amp;& ampMP[x][y+1]= = 2 & amp;& ampmp[x][y+2]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x][y-3]= = 2 & amp;& ampMP[x][y-2]= = 2 & amp;& ampMP[x][y-1]= 2 & amp;& ampmp[x][y+1]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x][y-4]= = 2 & amp;& ampMP[x][y-3]= = 2 & amp;& ampMP[x][y-2]= = 2 & amp;& ampmp[x][y-1]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
//斜“\”
if(MP[x+1][y+1]= = 2 & amp;& ampMP[x+2][y+2]= = 2 & amp;& ampMP[x+3][y+3]= = 2 & amp;& ampmp[x+4][y+4]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-1][y-1]= 2 & amp;& ampMP[x+1][y+1]= 2 & amp;& ampMP[x+2][y+2]= = 2 & amp;& ampmp[x+3][y+3]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-2][y-2]= = 2 & amp;& ampMP[x-1]= = 2 & amp;& ampMP[x+1][y+1]= 2 & amp;& ampmp[x+2][y+2]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-3][y-3]= = 2 & amp;& ampMP[x-2][y-2]= = 2 & amp;& ampMP[x-1]= = 2 & amp;& ampmp[x+1][y+1]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x-4][y-4]= = 2 & amp;& ampMP[x-3][y-3]= = 2 & amp;& ampMP[x-2][y-2]= = 2 & amp;& ampmp[x-1][y-1]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
//倾斜“/”
if(MP[x-1][y+1]= = 2 & amp;& ampMP[x-2][y+2]= = 2 & amp;& ampMP[x-3][y+3]= = 2 & amp;& ampmp[x-4][y+4]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x+1][y-1]= = 2 & amp;& ampMP[x-1][y+1]= 2 & amp;& ampMP[x-2][y+2]= = 2 & amp;& ampmp[x-3][y+3]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x+2][y-2]= = 2 & amp;& ampMP[x+1][y-1]= 2 & amp;& ampMP[x-1][y+1]= 2 & amp;& ampmp[x-2][y+2]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x+3][y-3]= = 2 & amp;& ampMP[x+2][y-2]= = 2 & amp;& ampMP[x+1][y-1]= 2 & amp;& ampmp[x-1][y+1]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
if(MP[x+4][y-4]= = 2 & amp;& ampMP[x+3][y-3]= = 2 & amp;& ampMP[x+2][y-2]= = 2 & amp;& ampmp[x+1][y-1]==2) {
gotoxy(3216);
cout & lt& lt“黑的赢!”;
返回0;
}
}
m++;//别忘了++m?
}
返回0;//这个没用,但是游戏里别忘了加,不然0分?
}