这是C语言版的代码,编译运行成可执行文件后,还需下载一个软件,才可人机对战,这个软件的下载地址如下:http://www.botzone.org/RATE/news/Gobang_Human_VS_AI.rar,代码如下: /* Program of Game -- wuziqi Written by Zhang shuai, DEC.25th, 2010 */ #include<iostream.h> #include<stdlib.h> #include<string.h> #include<time.h> const int BOARDSIZE = 15; //棋盘大小 int X,Y; int board[BOARDSIZE][BOARDSIZE]; //棋盘信息,-1表示空,1表示黑棋占据,2表示白棋占据 int colour; //用于保存己方颜色 int temp1,temp2,temp3,count; int checkMax(int x, int y,int black_or_white) { int num=0,max_num,max_temp=0,i; int x_temp=x,y_temp=y; int x_temp1=x_temp,y_temp1=y_temp; //judge right for(i=1;i<5;i++){ x_temp1+=1; if(x_temp1>=BOARDSIZE) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } //judge left x_temp1=x_temp; for(i=1;i<5;i++){ x_temp1-=1; if(x_temp1<0) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } if(num<5) max_temp=num; //judge up x_temp1=x_temp; y_temp1=y_temp; num=0; for(i=1;i<5;i++){ y_temp1-=1; if(y_temp1<0) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } //judge down y_temp1=y_temp; for(i=1;i<5;i++){ y_temp1+=1; if(y_temp1>=BOARDSIZE) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } if(num>max_temp&&num<5) max_temp=num; //judge left_up x_temp1=x_temp; y_temp1=y_temp; num=0; for(i=1;i<5;i++){ x_temp1-=1; y_temp1-=1; if(y_temp1<0 || x_temp1<0) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } //judge right_down x_temp1=x_temp; y_temp1=y_temp; for(i=1;i<5;i++){ x_temp1+=1; y_temp1+=1; if(y_temp1>=BOARDSIZE || x_temp1>=BOARDSIZE) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } if(num>max_temp&&num<5) max_temp=num; //judge right_up x_temp1=x_temp; y_temp1=y_temp; num=0; for(i=1;i<5;i++){ x_temp1+=1; y_temp1-=1; if(y_temp1<0 || x_temp1>=BOARDSIZE) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } //judge left_down x_temp1=x_temp; y_temp1=y_temp; for(i=1;i<5;i++){ x_temp1-=1; y_temp1+=1; if(y_temp1>=BOARDSIZE || x_temp1<0) break; if(board[x_temp1][y_temp1]==black_or_white) num++; else break; } if(num>max_temp&&num<5) max_temp=num; max_num=max_temp; return max_num; } //判断 三三类型 bool san_san(int x,int y,int black_or_white) { int flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,flag7=0,flag8=0,flag9=0,flag10=0,flag11=0,flag12=0; int x_temp=x,y_temp=y; int x_temp1=x_temp,y_temp1=y_temp; //judge up if(x_temp1>=4) { if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==-1) flag1=1; else if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==-1) flag1=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==-1) flag1=1; } if(x_temp1>=4&&x_temp1<=BOARDSIZE-1) if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==-1) flag1=1; //judge down x_temp1=x_temp; if(x_temp1<BOARDSIZE-4) { if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==-1) flag2=1; else if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==-1) flag2=1; else if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==-1) flag2=1; } if(x_temp1>=1&&x_temp1<BOARDSIZE-4) if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==-1) flag2=1; if(x_temp1>=2&&x_temp1<BOARDSIZE-2) { if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1) flag9=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white) flag9=1; else if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1) flag9=1; } //judge left x_temp1=x_temp; if(y_temp1>=4) { if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==-1) flag3=1; else if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==-1) flag3=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==-1) flag3=1; } if(y_temp1>=4&&y_temp1<BOARDSIZE-1) if(board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==-1) flag3=1; //judge right y_temp1=y_temp; if(y_temp1<BOARDSIZE-4) { if(board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==-1&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==-1) flag4=1; else if(board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==-1) flag4=1; else if(board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==-1) flag4=1; } if(y_temp1>=1&&y_temp1<BOARDSIZE-4) if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==-1) flag4=1; if(y_temp1>=2&&y_temp1<BOARDSIZE-2) { if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==-1) flag10=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1+2]==black_or_white) flag10=1; else if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==-1) flag10=1; } //judge left_up x_temp1=x_temp; y_temp1=y_temp; if(y_temp1>=4&&x_temp1>=4) { if(board[x_temp1-1][y_temp1-1]==black_or_white&&board[x_temp1-2][y_temp1-2]==-1&&board[x_temp1-3][y_temp1-3]==black_or_white&&board[x_temp1-4][y_temp1-4]==-1) flag5=1; else if(board[x_temp1-1][y_temp1-1]==-1&&board[x_temp1-2][y_temp1-2]==black_or_white&&board[x_temp1-3][y_temp1-3]==black_or_white&&board[x_temp1-4][y_temp1-4]==-1) flag5=1; else if(board[x_temp1-1][y_temp1-1]==black_or_white&&board[x_temp1-2][y_temp1-2]==black_or_white&&board[x_temp1-3][y_temp1-3]==-1) flag5=1; } if(y_temp1>=4&&x_temp1>=4&&y_temp1<BOARDSIZE-1&&x_temp1<BOARDSIZE-1) if(board[x_temp1+1][y_temp1+1]==-1&&board[x_temp1-1][y_temp1-1]==black_or_white&&board[x_temp1-2][y_temp1-2]==black_or_white&&board[x_temp1-3][y_temp1-3]==-1) flag5=1; //judge right_down if(y_temp1<BOARDSIZE-4&&x_temp1<BOARDSIZE-4) { if(board[x_temp1+1][y_temp1+1]==black_or_white&&board[x_temp1+2][y_temp1+2]==-1&&board[x_temp1+3][y_temp1+3]==black_or_white&&board[x_temp1+4][y_temp1+4]==-1) flag6=1; else if(board[x_temp1+1][y_temp1+1]==-1&&board[x_temp1+2][y_temp1+2]==black_or_white&&board[x_temp1+3][y_temp1+3]==black_or_white&&board[x_temp1+4][y_temp1+4]==-1) flag6=1; else if(board[x_temp1+1][y_temp1+1]==black_or_white&&board[x_temp1+2][y_temp1+2]==black_or_white&&board[x_temp1+3][y_temp1+3]==-1) flag6=1; } if(y_temp1>=1&&x_temp1>=1&&y_temp1<BOARDSIZE-4&&x_temp1<BOARDSIZE-4) if(board[x_temp1-1][y_temp1-1]==-1&&board[x_temp1+1][y_temp1+1]==black_or_white&&board[x_temp1+2][y_temp1+2]==black_or_white&&board[x_temp1+3][y_temp1+3]==-1) flag6=1; if(y_temp1>=2&&y_temp1<BOARDSIZE-2&&x_temp1>=2&&x_temp1<BOARDSIZE-2) { if(board[x_temp1-1][y_temp1-1]==black_or_white&&board[x_temp1-2][y_temp1-2]==-1&&board[x_temp1+1][y_temp1+1]==black_or_white&&board[x_temp1+2][y_temp1+2]==-1) flag11=1; else if(board[x_temp1-1][y_temp1-1]==black_or_white&&board[x_temp1-2][y_temp1-2]==-1&&board[x_temp1+1][y_temp1+1]==-1&&board[x_temp1+2][y_temp1+2]==black_or_white) flag11=1; else if(board[x_temp1-1][y_temp1-1]==-1&&board[x_temp1-2][y_temp1-2]==black_or_white&&board[x_temp1+1][y_temp1+1]==black_or_white&&board[x_temp1+2][y_temp1+2]==-1) flag11=1; } //judge left_down x_temp1=x_temp; y_temp1=y_temp; if(y_temp1>=4&&x_temp1<BOARDSIZE-4) { if(board[x_temp1+1][y_temp1-1]==black_or_white&&board[x_temp1+2][y_temp1-2]==-1&&board[x_temp1+3][y_temp1-3]==black_or_white&&board[x_temp1+4][y_temp1-4]==-1) flag7=1; else if(board[x_temp1+1][y_temp1-1]==-1&&board[x_temp1+2][y_temp1-2]==black_or_white&&board[x_temp1+3][y_temp1-3]==black_or_white&&board[x_temp1+4][y_temp1-4]==-1) flag7=1; else if(board[x_temp1+1][y_temp1-1]==black_or_white&&board[x_temp1+2][y_temp1-2]==black_or_white&&board[x_temp1+3][y_temp1-3]==-1) flag7=1; } if(y_temp1>=4&&x_temp1>=1&&y_temp1<BOARDSIZE-1&&x_temp1<BOARDSIZE-4) if(board[x_temp1-1][y_temp1+1]==-1&&board[x_temp1+1][y_temp1-1]==black_or_white&&board[x_temp1+2][y_temp1-2]==black_or_white&&board[x_temp1+3][y_temp1-3]==-1) flag7=1; //judge right_up x_temp1=x_temp; y_temp1=y_temp; if(y_temp1<BOARDSIZE-4&&x_temp1>=4) { if(board[x_temp1-1][y_temp1+1]==black_or_white&&board[x_temp1-2][y_temp1+2]==-1&&board[x_temp1-3][y_temp1+3]==black_or_white&&board[x_temp1-4][y_temp1+4]==-1) flag8=1; else if(board[x_temp1-1][y_temp1+1]==-1&&board[x_temp1-2][y_temp1+2]==black_or_white&&board[x_temp1-3][y_temp1+3]==black_or_white&&board[x_temp1-4][y_temp1+4]==-1) flag8=1; else if(board[x_temp1-1][y_temp1+1]==black_or_white&&board[x_temp1-2][y_temp1+2]==black_or_white&&board[x_temp1-3][y_temp1+3]==-1) flag8=1; } if(y_temp1>=1&&x_temp1>=4&&y_temp1<BOARDSIZE-4&&x_temp1<BOARDSIZE-1) if(board[x_temp1+1][y_temp1-1]==-1&&board[x_temp1-1][y_temp1+1]==black_or_white&&board[x_temp1-2][y_temp1+2]==black_or_white&&board[x_temp1-3][y_temp1+3]==-1) flag8=1; if(y_temp1>=2&&y_temp1<BOARDSIZE-2&&x_temp1>=2&&x_temp1<BOARDSIZE-2) { if(board[x_temp1+1][y_temp1-1]==black_or_white&&board[x_temp1+2][y_temp1-2]==-1&&board[x_temp1-1][y_temp1+1]==black_or_white&&board[x_temp1-2][y_temp1+2]==-1) flag12=1; else if(board[x_temp1+1][y_temp1-1]==black_or_white&&board[x_temp1+2][y_temp1-2]==-1&&board[x_temp1-1][y_temp1+1]==-1&&board[x_temp1-2][y_temp1+2]==black_or_white) flag12=1; else if(board[x_temp1+1][y_temp1-1]==-1&&board[x_temp1+2][y_temp1-2]==black_or_white&&board[x_temp1-1][y_temp1+1]==black_or_white&&board[x_temp1-2][y_temp1+2]==-1) flag12=1; } if(flag1+flag2+flag3+flag4+flag5+flag6+flag7+flag8+flag9+flag10+flag11+flag12>=2) { return true; } return false; } //判断四三类型 bool si_san(int x,int y,int black_or_white) { int flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,flag7=0,flag8=0; int x_temp=x,y_temp=y; int x_temp1=x_temp,y_temp1=y_temp; //judge right_left_san if(x_temp1<BOARDSIZE-4&&x_temp1>=1) { if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==-1) flag1=1; else if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==-1) flag1=1; else if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==-1) flag1=1; } if(x_temp1>=4) { if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==-1) flag1=1; else if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==-1) flag1=1; else if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==-1) flag1=1; } if(x_temp1>=2&&x_temp1<BOARDSIZE-2) { if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1) flag1=1; else if(board[x_temp1-2][y_temp1]==-1&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white) flag1=1; else if(board[x_temp1+2][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white) flag1=1; } // judge right_left_si if(x_temp1<BOARDSIZE-5) { if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==black_or_white&&board[x_temp1+5][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==black_or_white&&board[x_temp1+5][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==-1&&board[x_temp1+4][y_temp1]==black_or_white&&board[x_temp1+5][y_temp1]==3-black_or_white) flag2=1; } if(x_temp1<BOARDSIZE-4&&x_temp1>=1) { if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1+4][y_temp1]==3-black_or_white) flag2=1; } if(x_temp1<BOARDSIZE-3&&x_temp1>=2) { if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==3-black_or_white) flag2=1; } if(x_temp1<BOARDSIZE-2&&x_temp1>=3) { if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==3-black_or_white) flag2=1; } if(x_temp1>=5) { if(board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==black_or_white&&board[x_temp1-5][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==black_or_white&&board[x_temp1-5][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==-1&&board[x_temp1-4][y_temp1]==black_or_white&&board[x_temp1-5][y_temp1]==3-black_or_white) flag2=1; } if(x_temp1>=4&&x_temp1<BOARDSIZE-1) { if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==-1&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==black_or_white&&board[x_temp1-4][y_temp1]==3-black_or_white) flag2=1; } if(x_temp1>=3&&x_temp1<BOARDSIZE-2) { if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1-1][y_temp1]==-1&&board[x_temp1-2][y_temp1]==black_or_white&&board[x_temp1-3][y_temp1]==3-black_or_white) flag2=1; } if(x_temp1>=2&&x_temp1<BOARDSIZE-3) { if(board[x_temp1+1][y_temp1]==black_or_white&&board[x_temp1+2][y_temp1]==-1&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==3-black_or_white) flag2=1; else if(board[x_temp1+1][y_temp1]==-1&&board[x_temp1+2][y_temp1]==black_or_white&&board[x_temp1+3][y_temp1]==black_or_white&&board[x_temp1-1][y_temp1]==black_or_white&&board[x_temp1-2][y_temp1]==3-black_or_white) flag2=1; } //judge up_down_san if(y_temp1<BOARDSIZE-4&&y_temp1>=1) { if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==-1) flag3=1; else if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==-1) flag3=1; else if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==-1&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==-1) flag3=1; } if(y_temp1>=4&&y_temp1<BOARDSIZE-1) { if(board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==-1) flag3=1; else if(board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==-1) flag3=1; else if(board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==-1) flag3=1; } if(y_temp1>=2&&y_temp1<BOARDSIZE-2) { if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==-1) flag3=1; else if(board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1+2]==black_or_white) flag3=1; else if(board[x_temp1][y_temp1+2]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]==black_or_white) flag3=1; } //judge up_down_si if(y_temp1<BOARDSIZE-5) { if(board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==black_or_white&&board[x_temp1][y_temp1+5]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==-1&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==black_or_white&&board[x_temp1][y_temp1+5]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==-1&&board[x_temp1][y_temp1+4]==black_or_white&&board[x_temp1][y_temp1+5]==3-black_or_white) flag4=1; } if(y_temp1<BOARDSIZE-4&&y_temp1>=1) { if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==-1&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==black_or_white&&board[x_temp1][y_temp1+4]==3-black_or_white) flag4=1; } if(y_temp1<BOARDSIZE-3&&y_temp1>=2) { if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1+2]==black_or_white&&board[x_temp1][y_temp1+3]==3-black_or_white) flag4=1; } if(y_temp1<BOARDSIZE-2&&y_temp1>=3) { if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1+2]==3-black_or_white) flag4=1; } if(y_temp1>=5) { if(board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==black_or_white&&board[x_temp1][y_temp1-5]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==black_or_white&&board[x_temp1][y_temp1-5]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==-1&&board[x_temp1][y_temp1-4]==black_or_white&&board[x_temp1][y_temp1-5]==3-black_or_white) flag4=1; } if(y_temp1>=4&&y_temp1<BOARDSIZE-1) { if(board[x_temp1][y_temp1+1]==-1&&board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==black_or_white&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1-1]==black_or_white&&board[x_temp1][y_temp1-2]==-1&&board[x_temp1][y_temp1-3]==black_or_white&&board[x_temp1][y_temp1-4]==3-black_or_white) flag4=1; else if(board[x_temp1][y_temp1+1]==black_or_white&&board[x_temp1][y_temp1-1]==-1&&board[x_temp1][y_temp1-2]