2000行代码实现简易版“阿尔法狗”C语言

众所周知,“阿尔法狗”是围棋AI,击败了一众围棋高手,小编也尝试写了一个会下五子棋的程序,不过根本谈不上“人工智能”,距离“阿尔法狗”更是天差地别,不过确实可以实现人机对弈(棋艺也还不算太菜…吧…)
首先,需要构建五子棋的基本游戏框架,5sc.c文件就是构建了一个五子棋游戏(大约260行代码);AI.c文件内是实现程序自动下棋的代码,也是程序的核心(大约1700行)。

5sc.c

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX_ROW 12
#define MAX_COL 12
#define DEBUG
int a,b,AIMOVE=0;
char chess_board[MAX_ROW][MAX_COL];
#include"AI.c"
int menu()
{printf("=========================\n");printf("1.开始游戏\n");printf("0.结束游戏\n");printf("=========================\n");printf("请输入您的选择:");int choice = 0;scanf("%d", &choice);return choice;
}void InitializeChessBoard()
{int row,col;for ( row = 0; row < MAX_ROW; row++){for ( col = 0; col < MAX_COL; col++){chess_board[row][col] = ' ';}}
}void Print()
{int row,col,i;printf("  ");for ( i = 1; i <=MAX_COL; i++){printf("  %d ",i%10);}printf("\n  ");for( i=1;i<=MAX_COL;i++)printf(" ---");printf("\n");for ( row = 0; row < MAX_ROW; row++){printf("%2d|",row+1);for( col=0;col<MAX_COL;col++){printf(" %c |",chess_board[row][col]);}printf("\n  ");if (row!= MAX_ROW){for( i=1;i<=MAX_COL;i++)printf(" ---");printf("\n");}}
}void PlayerMove()
{printf("轮到您落子!\n");while (1){printf("请输入落子位置的坐标(row col):");int row = 0;int col = 0;scanf("%d %d", &a, &b);row=a-1;col=b-1;//检查输入//if (row < 0 || row >= MAX_ROW ||col < 0 || col >= MAX_COL){printf("坐标超出范围,请重新输入\n");continue;}if (chess_board[row][col] != ' '){printf("坐标已被占用!\n");continue;}chess_board[row][col] = '*';break;}printf("您已落子!\n");
}int ComputerMove()
{int AI(void);printf("轮到阿尔法锋落子!\n");AIMOVE=AI();/*while (1){int row = rand() % MAX_ROW;int col = rand() % MAX_COL;if (chess_board[row][col] != ' '){continue;}chess_board[row][col] = 'o';break;}*/printf("阿尔法锋落子完毕!\n");
}//如果棋盘满了,返回1,否则返回0//
int ChessBoardIsFull()
{int row,col;for ( row = 0; row < MAX_ROW; ++row){for ( col = 0; col < MAX_COL; col++){if (chess_board[row][col] == ' '){return 0;}}}return 1;
}
//返回胜利者    q和//
char  CheckWinner()
{int row,col;if (ChessBoardIsFull()){return'q';}//检查行for ( row = 0; row < MAX_ROW; row++){for( col=0;col<MAX_COL-4;col++){if(chess_board[row][col]!=' '){int chess=1,check;for( check=1;check<=4;check++){if(chess_board[row][col]==chess_board[row][col+check])chess++;}if ( chess==5){return chess_board[row][col];}}}}//检查列for ( col = 0; col < MAX_COL; col++){for( row=0;row<MAX_ROW-4;row++){if(chess_board[row][col]!=' '){int chess=1,check;for( check=1;check<=4;check++){if(chess_board[row][col]==chess_board[row+check][col])chess++;}if ( chess==5){return chess_board[row][col];}}}}//检查所有对角线  '\'  //for( row=0;row<(MAX_ROW-4);row++){for( col=0;col<(MAX_COL-4);col++){if(chess_board[row][col]!=' '){int chess=1,check;for( check=1;check<=4;check++){if(chess_board[row][col]==chess_board[row+check][col+check])chess++;elsebreak;}if(chess==5)return chess_board[row][col];}}}//检查所有对角线  '/'  //for( row=MAX_ROW-1;row>=4;row--){for( col=0;col<MAX_COL-4;col++){if(chess_board[row][col]!=' '){int chess=1,check;for( check=1;check<=4;check++){if(chess_board[row][col]==chess_board[row-check][col+check])chess++;elsebreak;}if(chess==5)return chess_board[row][col];}}}return ' ';}
void game()
{//初始化//InitializeChessBoard();char winner = ' ';while (1){//打印//Print();//人//PlayerMove();//检测胜负//winner = CheckWinner();if (winner != ' '){break;}//电脑ComputerMove();#ifdef DEBUGprintf("%d\n",AIMOVE);#endifwinner = CheckWinner();if (winner != ' '){break;}}Print();if (winner == '*')printf("\n\t恭喜你赢了阿尔法锋!\n阿尔法锋还会继续完善的!\n");else if (winner == 'o')printf("很遗憾,您输给了阿尔法锋!!\n");else if (winner == 'q')printf("平局!\n");
}int main()
{while (1){int choice = menu();if (choice == 1)game();else if (choice == 0){printf("游戏结束!");break;}elseprintf("输入有误!");}return 0;
}

AI.c


int AI(void)
{int row,col,chess,check,count,dangerous; srand((unsigned int)time(0));//o4//for (row = 0; row < MAX_ROW; row++){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]=='o'){chess=1;for(check=1;check<=3;check++){if(chess_board[row][col+check]=='o')chess++;}if (chess==4){if((chess_board[row][col+4]==' ')&&(col+4<MAX_COL)){chess_board[row][col+4]='o';return 1;}else if((chess_board[row][col-1]==' ')&&(col-1>=0)){chess_board[row][col-1]='o';return 2;}}}}}//o检查列4//for (col = 0; col < MAX_COL; col++){for( row=0;row<MAX_ROW;row++){if(chess_board[row][col]=='o'){chess=1;for(check=1;check<=3;check++){if(chess_board[row+check][col]=='o')chess++;}if ( chess==4){if(chess_board[row+4][col]==' '){chess_board[row+4][col]='o';return 3;}else if(chess_board[row-1][col]==' '){chess_board[row-1][col]='o';return 4;}}}}}//o检查所有对角线  '\' 4 //for(row=0;row<MAX_ROW;row++){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]=='o'){chess=1;for(check=1;check<=3;check++){if((chess_board[row+check][col+check]=='o')&&(col+3<MAX_COL))chess++;}if(chess==4){if((chess_board[row+4][col+4]==' ')&&(col+4<MAX_COL)){chess_board[row+4][col+4]='o';return 5;}else if((chess_board[row-1][col-1]==' ')&&(col-1>=0)){chess_board[row-1][col-1]='o';return 6;}}}}}//o检查所有对角线  '/' 4 //for( row=MAX_ROW-1;row>=0;row--){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]=='o'){chess=1;for(check=1;check<=3;check++){if(chess_board[row-check][col+check]=='o')chess++;}if(chess==4){if((chess_board[row-4][col+4]==' ')&&(col+4<MAX_COL)){chess_board[row-4][col+4]='o';return 7;}else if((chess_board[row+1][col-1]==' ')&&(col-1>=0)){chess_board[row+1][col-1]='o';return 8;}}}}}//** **//for(row=0;row<MAX_ROW;row++){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]==' '){if((chess_board[row][col+1]=='*')&&(chess_board[row][col+2]=='*')&&(chess_board[row][col-1]=='*')&&(chess_board[row][col-2]=='*')){chess_board[row][col]='o';return 9;}if((chess_board[row+1][col]=='*')&&(chess_board[row+2][col]=='*')&&(chess_board[row-1][col]=='*')&&(chess_board[row-2][col]=='*')){chess_board[row][col]='o';return 10;}if((chess_board[row+1][col+1]=='*')&&(chess_board[row+2][col+2]=='*')&&(chess_board[row-1][col-1]=='*')&&(chess_board[row-2][col-2]=='*')){chess_board[row][col]='o';return 11;}if((chess_board[row-1][col+1]=='*')&&(chess_board[row-2][col+2]=='*')&&(chess_board[row+1][col-1]=='*')&&(chess_board[row+2][col-2]=='*')){chess_board[row][col]='o';return 12;}}}} //*** *//for ( row = 0; row < MAX_ROW; row++){for(col=0;col< MAX_COL;col++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row][col+check]=='*')chess++;}if ((chess==3)&&(chess_board[row][col+3]==' ')&&(chess_board[row][col+4]=='*')){chess_board[row][col+3]='o';return 13;}else if((chess==3)&&(chess_board[row][col-1]==' ')&&(chess_board[row][col-2]=='*')){chess_board[row][col-1]='o';return 14;}}}}for ( col = 0; col < MAX_COL; col++){for( row=0;row<MAX_ROW;row++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col]=='*')chess++;}if ( (chess==3)&&(chess_board[row+3][col]==' ')&&(chess_board[row+4][col]=='*')){chess_board[row+3][col]='o';return 15;}else if( (chess==3)&&(chess_board[row-1][col]==' ')&&(chess_board[row-2][col]=='*')){chess_board[row-1][col]='o';return 16;}}}}for( row=0;row<MAX_ROW;row++){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col+check]=='*')chess++;}if ( (chess==3)&&(chess_board[row+3][col+3]==' ')&&(chess_board[row+4][col+4]=='*')){chess_board[row+3][row+3]='o';return 17;}else if( (chess==3)&&(chess_board[row-1][col-1]==' ')&&(chess_board[row-2][col-2]=='*')){chess_board[row-1][col-1]='o';return 18;}}}}for( row=MAX_ROW-1;row>=0;row--){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row-check][col+check]=='*')chess++;}if ( (chess==3)&&(chess_board[row-3][col+3]==' ')&&(chess_board[row-4][col+4]=='*')){chess_board[row-3][col+3]='o';return 19;}else if( (chess==3)&&(chess_board[row+1][col-1]==' ')&&(chess_board[row+2][col-2]=='*')){chess_board[row+1][col-1]='o';return 20;}}}}//*检查行4//for (row = 0; row < MAX_ROW; row++){for(col=0;col<MAX_COL;col++){if(chess_board[row][col]=='*'){chess=1;for(check=1;check<=3;check++){if(chess_board[row][col+check]=='*')chess++;}if (chess==4){if(col+4<=MAX_COL-1){if((col==0)&&(chess_board[row][col+4]==' ')){chess_board[row][col+4]='o';return 21;}else if((chess_board[row][col+4]==' ')&&(chess_board[row][col-1]=='o')){chess_board[row][col+4]='o';return 22;}else if((chess_board[row][col-1]==' ')&&(chess_board[row][col+4]=='o')){chess_board[row][col-1]='o';return 23;}else if((chess_board[row][col-1]==' ')&&(chess_board[row][col+4]==' ')){int i = rand() % 2;if(i==0){chess_board[row][col-1]='o';return 24;}else{chess_board[row][col+4]='o';return 25;}}}else if(col+4==MAX_COL){if((col>=1)&&(chess_board[row][col-1]==' ')){chess_board[row][col-1]='o';return 26;}}}}}}//检*查列4//for ( col = 0; col < MAX_COL; col++){for(row=0;row<MAX_ROW;row++){if(chess_board[row][col]=='*'){chess=1;for(check=1;check<=3;check++){if(chess_board[row+check][col]=='*')chess++;}if ( chess==4){if(row+4<=MAX_ROW-1){if((row==0)&&(chess_board[row+4][col]==' ')){chess_board[row+4][col]='o';return 27;}else if((chess_board[row+4][col]==' ')&&(chess_board[row-1][col]=='o')){chess_board[row+4][col]='o';return 28;}else if((chess_board[row-1][col]==' ')&&(chess_board[row+4][col]=='o')){chess_board[row-1][col]='o';return 29;}else if((chess_board[row-1][col]==' ')&&(chess_board[row+4][col]==' ')){int i = rand() % 2;if(i==0){chess_board[row-1][col]='o';return 30;}else{chess_board[row+4][col]='o';return 31;}}}else if(row+4==MAX_ROW){if((row>=1)&&(chess_board[row-1][col]==' ')){chess_board[row-1][col]='o';return 32;}}}}}}//检*查所有对角线  '\' 4 //for( row=0;row<MAX_ROW;row++){for(col=0;col<MAX_COL;col++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=3;check++){if(chess_board[row+check][col+check]=='*')chess++;}if(chess==4){if(((row==0)||(col==0))&&(chess_board[row+4][col+4]==' ')){chess_board[row+4][col+4]='o';return 33;}else if(((row+4==MAX_ROW)||(col+4==MAX_COL))&&(chess_board[row-1][col-1]==' ')){chess_board[row-1][col-1]='o';return 34;}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+4][col+4]=='o')){chess_board[row-1][col-1]='o';return 35;}else if((chess_board[row-1][col-1]=='o')&&(chess_board[row+4][col+4]==' ')){chess_board[row+4][col+4]='o';return 36;}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+4][col+4]==' ')){int i = rand() % 2;if(i==0){chess_board[row-1][col-1]='o';return 37;}else{chess_board[row+4][col+4]='o';return 38;}}}}}}//检*查所有对角线  '/' 4 //for( row=MAX_ROW-1;row>=3;row--){for(col=0;col<MAX_COL;col++){if(chess_board[row][col]=='*'){chess=1;for(check=1;check<=3;check++){if(chess_board[row-check][col+check]=='*')chess++;}if(chess==4){if(((row==MAX_ROW-1)||(col==0))&&(chess_board[row-4][col+4]==' ')){chess_board[row-4][col+4]='o';return 39;}else if(((row-4==-1)||(col+4==MAX_COL))&&(chess_board[row+1][col-1]==' ')){chess_board[row+1][col-1]='o';return 40;}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-4][col+4]=='o')){chess_board[row+1][col-1]='o';return 41;}else if((chess_board[row+1][col-1]=='o')&&(chess_board[row-4][col+4]==' ')){chess_board[row-4][col+4]='o';return 042;}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-4][col+4]==' ')){int i = rand() % 2;if(i==0){chess_board[row+1][col-1]='o';return 043;}else{chess_board[row-4][col+4]='o';return 044;}}}}}}// oo o hang//for ( row = 0; row < MAX_ROW; row++){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row][col+check]=='o')chess++;}if ((chess==2)&&((chess_board[row][col-1]==' ')||(chess_board[row][col+4]==' '))){if((chess_board[row][col+2]==' ')&&(chess_board[row][col+3]=='o')){chess_board[row][col+2]='o';return 045;}else if((chess_board[row][col-1]==' ')&&(chess_board[row][col-2]=='o')){chess_board[row][col-1]='o';return 046;}}}}}//o检查列  oo o //for ( col = 0; col < MAX_COL; col++){for( row=0;row<=MAX_ROW-2;row++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row+check][col]=='o')chess++;}if ((chess==2)&&((chess_board[row-1][col]==' ')||(chess_board[row+4][col]==' '))){if((chess_board[row+2][col]==' ')&&(chess_board[row+3][col]=='o')){chess_board[row+2][col]='o';return 047;}else if((chess_board[row-1][col]==' ')&&(chess_board[row-2][col]=='o')){chess_board[row-1][col]='o';return 48;}}}}}//检o查所有对角线  '\' oo o //for( row=0;row<=(MAX_ROW-2);row++){for( col=0;col<=(MAX_COL-2);col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row+check][col+check]=='o')chess++;}if ((chess==2)&&((chess_board[row-1][col-1]==' ')||(chess_board[row+4][col+4]==' '))){if((chess_board[row+2][col+2]==' ')&&(chess_board[row+3][col+3]=='o')){chess_board[row+2][col+2]='o';return  49;}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row-2][col-2]=='o')){chess_board[row-1][col-1]='o';return 50;}}}}}//o检查所有对角线  '/' oo o //for( row=MAX_ROW-1;row>=1;row--){for( col=0;col<=MAX_COL-2;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row-check][col+check]=='o')chess++;}if ((chess==2)&&((chess_board[row+1][col-1]==' ')||(chess_board[row-4][col+4]==' '))){if((chess_board[row-2][col+2]==' ')&&(chess_board[row-3][col+3]=='o')){chess_board[row-2][col+2]='o';return 051;}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row+2][col-2]=='o')){chess_board[row+1][col-1]='o';return 052;}}}}}//o检查行3 ooo // for ( row = 0; row < MAX_ROW; row++){for( col=0;col<=MAX_COL-4;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row][col+check]=='o')chess++;}if(chess==3){if (((chess_board[row][col-1]==' ')&&(chess_board[row][col+3]==' '))||((chess_board[row][col-1]==' ')&&(chess_board[row][col-2]==' '))||((chess_board[row][col+3]==' ')&&(chess_board[row][col+4]==' '))){if(chess_board[row][col+4]==' '){chess_board[row][col+3]='o';return 053;}else if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 054;}}}}}}//o检查列3//for ( col = 0; col < MAX_COL; col++){for( row=0;row<=MAX_ROW-4;row++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col]=='o')chess++;}if(chess==3){if (((chess_board[row-1][col]==' ')&&(chess_board[row+3][col]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row-2][col]==' '))||((chess_board[row+3][col]==' ')&&(chess_board[row+4][col]==' '))){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 055;}else if(chess_board[row+4][col]==' '){chess_board[row+3][col]='o';return 056;}}}}}}//o检查所有对角线  '\' 3 //for( row=0;row<=(MAX_ROW-4);row++){for( col=0;col<=(MAX_COL-4);col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col+check]=='o')chess++;}if(chess==3){if (((chess_board[row-1][col-1]==' ')&&(chess_board[row+3][col+3]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row-2][col-2]==' '))||((chess_board[row+3][col+3]==' ')&&(chess_board[row+4][col+4]==' '))){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 057;}else if(chess_board[row+4][col+4]==' '){chess_board[row+3][col+3]='o';return 58;}}}}}}//o检查所有对角线  '/' 3 //for( row=MAX_ROW-1;row>=0;row--){for( col=0;col<MAX_COL;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row-check][col+check]=='o')chess++;}if(chess==3){if (((chess_board[row+1][col-1]==' ')&&(chess_board[row-3][col+3]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row+2][col-2]==' '))||((chess_board[row-3][col+3]==' ')&&(chess_board[row-4][col+4]==' '))){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col-1]='o'; return 59;}else if(chess_board[row-4][col+4]==' '){chess_board[row-3][col+3]='o';return 60;}}}}}}for( row=0;row<MAX_ROW;row++){count=0;dangerous=0; for( col=0;col<MAX_COL;col++){if((chess_board[row+1][col]=='*')&&(chess_board[row+2][col]=='*'))  count++;if((chess_board[row+1][col+1]=='*')&&(chess_board[row+2][col+2]=='*'))  count++;if((chess_board[row][col+1]=='*')&&(chess_board[row][col+2]=='*'))  count++;if((chess_board[row-1][col+1]=='*')&&(chess_board[row-2][col+2]=='*'))  count++;if((chess_board[row-1][col]=='*')&&(chess_board[row-2][col]=='*'))  count++;if((chess_board[row-1][col-1]=='*')&&(chess_board[row-2][col-2]=='*'))  count++;if((chess_board[row][col-1]=='*')&&(chess_board[row][col-2]=='*'))  count++;if((chess_board[row+1][col-1]=='*')&&(chess_board[row+2][col-2]=='*'))  count++;if((chess_board[row+1][col]=='*')&&(chess_board[row+2][col]=='*')&&(chess_board[row+3][col]=='*'))  dangerous++;if((chess_board[row+1][col+1]=='*')&&(chess_board[row+2][col+2]=='*')&&(chess_board[row+3][col+3]=='*'))  dangerous++;if((chess_board[row][col+1]=='*')&&(chess_board[row][col+2]=='*')&&(chess_board[row][col+3]=='*'))  dangerous++;if((chess_board[row-1][col+1]=='*')&&(chess_board[row-2][col+2]=='*')&&(chess_board[row-3][col+3]=='*'))  dangerous++;if((chess_board[row-1][col]=='*')&&(chess_board[row-2][col]=='*')&&(chess_board[row-3][col]=='*'))  dangerous++;if((chess_board[row-1][col-1]=='*')&&(chess_board[row-2][col-2]=='*')&&(chess_board[row-3][col-3]=='*'))  dangerous++;if((chess_board[row][col-1]=='*')&&(chess_board[row][col-2]=='*')&&(chess_board[row][col-3]=='*'))  dangerous++;if((chess_board[row+1][col-1]=='*')&&(chess_board[row+2][col-2]=='*')&&(chess_board[row+3][col-3]=='*'))  dangerous++;if((count>=2)&&(chess_board[row][col]==' ')&&(dangerous>=1)){chess_board[row][col]='o';return 061;}}}//检查行3//for ( row = 0; row < MAX_ROW; row++){for( col=0;col<=MAX_COL-4;col++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row][col+check]=='*')chess++;}if ((chess==3)&&(col!=0)){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+3]==' ')){if((chess_board[row][col-2]=='*')&&(col-2>=0)){chess_board[row][col-1]='o';return 062;}else if((chess_board[row][col+4]=='*')&&(col+4<MAX_COL)){chess_board[row][col+3]='o';return 063;}else{int i = rand() % 2;if(i==0){chess_board[row][col-1]='o';return 064;}else{chess_board[row][col+3]='o';return 065;}}}else if((chess_board[row][col-1]==' ')&&((chess_board[row][col+3]=='o')||(col+3==MAX_COL))){if((chess_board[row][col-2]=='*')&&(col-2>=0)){chess_board[row][col-1]='o';return 066;}}else if(((chess_board[row][col-1]=='o')||(col==0))&&(chess_board[row][col+3]==' ')){if((col+4<MAX_COL)&&(chess_board[row][col+4]=='*')){chess_board[row][col+3]='o';return 067;}}}}}}//检查列3//for ( col = 0; col < MAX_COL; col++){for( row=0;row<MAX_ROW;row++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col]=='*')chess++;}if ( (chess==3)&&(row!=0)){if((chess_board[row-1][col]==' ')&&(chess_board[row+3][col]==' ')){if((chess_board[row-2][col]=='*')&&(row-2>=0)){chess_board[row-1][col]='o';return 68;}else if((chess_board[row+4][col]=='*')&&(row+4<MAX_ROW)){chess_board[row+3][col]='o';return 69;}else{int i = rand() % 2;if(i==0){chess_board[row-1][col]='o';return 70;}else{chess_board[row+3][col]='o';return 071;}}}else if(((chess_board[row-1][col]=='o')||(row==0))&&(chess_board[row+3][col]==' ')){if((chess_board[row+4][col]=='*')&&(row+4<=MAX_ROW)){chess_board[row+3][col]='o';return 072;}}   else if((chess_board[row-1][col]==' ')&&((chess_board[row+3][col]=='o')||(row+3==MAX_ROW))){if((chess_board[row-2][col]=='*')&&(row-2>=0)){chess_board[row-1][col]='o';return 073;}} }}}}//检查所有对角线  '\' 3 //for( row=0;row<=(MAX_ROW-4);row++){for( col=0;col<=(MAX_COL-4);col++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col+check]=='*')chess++;}if((chess==3)&&(row!=0)&&(col!=0)){if((chess_board[row-1][col-1]==' ')&&(chess_board[row+3][col+3]==' ')){if((chess_board[row-2][col-2]=='*')&&(row-2>=0)&&(col-2>=0)){chess_board[row-1][col-1]='o';return 074;}else if((chess_board[row+4][col+4]=='*')&&(row+4<MAX_ROW)&&(col+4<MAX_COL)){chess_board[row+3][col+3]='o';return 075;}else{int i = rand() % 2;if(i==0){chess_board[row-1][col-1]='o';return 076;}else{chess_board[row+3][col+3]='o';return 077;}}}else if (((chess_board[row-1][col-1]=='o')||(row==0)||(col==0))&&(chess_board[row+3][col+3]==' ')){if((col+4<MAX_COL)&&(row+4<MAX_ROW)&&(chess_board[row+4][col+4]=='*')){chess_board[row+3][col+3]='o';return 78;}}else if((chess_board[row-1][col-1]==' ')&&( (chess_board[row+3][col+3]=='o') || (row+3==MAX_ROW) || (col+3==MAX_COL) )){if((row-2>=0)&&(col-2>=0)&&(chess_board[row-2][col-2]=='*')){chess_board[row-1][col-1]='o';return 79;}}}}}}//检查所有对角线  '/' 3 //for( row=MAX_ROW-1;row>=3;row--){for( col=0;col<=MAX_COL-4;col++){if(chess_board[row][col]=='*'){chess=1;for( check=1;check<=2;check++){if(chess_board[row-check][col+check]=='*')chess++;}if((chess==3)&&(row!=MAX_ROW-1)&&(col!=0)){if((chess_board[row+1][col-1]==' ')&&(chess_board[row-3][col+3]==' ')){if((chess_board[row+2][col-2]=='*')&&(row+2<MAX_ROW)&&(col-2>=0)){chess_board[row+1][col-1]='o';return 80;}else if((chess_board[row-4][col+4]=='*')&&(row-4>=0)&&(col+4<MAX_COL)){chess_board[row-3][col+3]='o';return 81;}else{int i = rand() % 2;if(i==0){chess_board[row+1][col-1]='o';return 82;}else{chess_board[row-3][col+3]='o';return 83;}}}else if(((chess_board[row+1][col-1]=='o')||(row+1==MAX_ROW)||(col==0))&&(chess_board[row-3][col+3]==' ')){if((row-4>=0)&&(col+4<MAX_COL)&&(chess_board[row-4][col+4]=='*')){chess_board[row-3][col+3]=='o';return 84;}}else if(((chess_board[row-3][col+3]=='o')||(row-3==-1)||(col+3==MAX_COL))&&(chess_board[row+1][col-1]==' ')){if((row+2<MAX_ROW)&&(col-2>=0)&&(chess_board[row+2][col-2]=='*')){chess_board[row+1][col-1]='o';return 85;}}}}}}//***////* *////***//for( row=0;row<MAX_ROW;row++){for( col=0;col<MAX_COL;col++){count=0;if(chess_board[row][col]==' '){if((chess_board[row+1][col]=='*')&&(chess_board[row+2][col]=='*'))  count++;if((chess_board[row+1][col+1]=='*')&&(chess_board[row+2][col+2]=='*'))  count++;if((chess_board[row][col+1]=='*')&&(chess_board[row][col+2]=='*'))  count++;if((chess_board[row-1][col+1]=='*')&&(chess_board[row-2][col+2]=='*'))  count++;if((chess_board[row-1][col]=='*')&&(chess_board[row-2][col]=='*'))  count++;if((chess_board[row-1][col-1]=='*')&&(chess_board[row-2][col-2]=='*'))  count++;if((chess_board[row][col-1]=='*')&&(chess_board[row][col-2]=='*'))  count++;if((chess_board[row+1][col-1]=='*')&&(chess_board[row+2][col-2]=='*'))  count++;if((chess_board[row][col-1]=='*')&&(chess_board[row][col+1]=='*'))  count++;if((chess_board[row+1][col]=='*')&&(chess_board[row-1][col]=='*'))  count++;if((chess_board[row+1][col-1]=='*')&&(chess_board[row-1][col+1]=='*'))  count++;if((chess_board[row-1][col-1]=='*')&&(chess_board[row+1][col+1]=='*'))  count++;if(count>=2){chess_board[row][col]='o';return 86;} }}}//3o//for ( row = 0; row < MAX_ROW; row++){for( col=0;col<=MAX_COL-3;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row][col+check]=='o')chess++;}if (chess==3){if(chess_board[row][col+3]==' '){chess_board[row][col+3]='o';return 87;}else if(chess_board[row][col-1]==' '){chess_board[row][col-1]='o';return 88;}}}}}//o检查列3//for ( col = 0; col < MAX_COL; col++){for( row=0;row<=MAX_ROW-3;row++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col]=='o')chess++;}if ( chess==3){if(chess_board[row+3][col]==' '){chess_board[row+3][col]='o';return 89;}else if(chess_board[row-1][col]==' '){chess_board[row-1][col]='o';return 90;}}}}}//检o查所有对角线  '\' 3 //for( row=0;row<=(MAX_ROW-3);row++){for( col=0;col<=(MAX_COL-3);col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row+check][col+check]=='o')chess++;}if(chess==3){if(chess_board[row+3][col+3]==' '){chess_board[row+3][col+3]='o';return 91;}else if(chess_board[row-1][col-1]==' '){chess_board[row-1][col-1]='o';return 92;}}}}}//o检查所有对角线  '/' 3//for( row=MAX_ROW-1;row>=2;row--){for( col=0;col<=MAX_COL-3;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=2;check++){if(chess_board[row-check][col+check]=='o')chess++;}if(chess==3){if(chess_board[row-3][col+3]==' '){chess_board[row-3][col+3]='o';return 93;}else if(chess_board[row+1][col-1]==' '){chess_board[row+1][col-1]='o';return 94;}}}}}//  oo  //for( row=0;row<MAX_ROW;row++){for( col=0;col<MAX_COL;col++){count=0;if(chess_board[row][col]==' '){if((chess_board[row][col-1]=='o')&&(chess_board[row][col+1]=='o')&&(chess_board[row][col-2]==' ')&&(chess_board[row][col+2]==' ')) count++;if((chess_board[row-1][col]=='o')&&(chess_board[row+1][col]=='o')&&(chess_board[row+2][col]==' ')&&(chess_board[row-2][col]==' ')) count++;if((chess_board[row-1][col-1]=='o')&&(chess_board[row+1][col+1]=='o')&&(chess_board[row-2][col-2]==' ')&&(chess_board[row+2][col+2]==' ')) count++;if((chess_board[row-1][col+1]=='o')&&(chess_board[row+1][col-1]=='o')&&(chess_board[row-2][col+2]==' ')&&(chess_board[row+2][col-2]==' ')) count++;if((chess_board[row][col-1]=='o')&&(chess_board[row][col+1]=='o')&&(chess_board[row][col-2]==' ')&&(chess_board[row][col+2]==' ')) count++;if(count!=0){chess_board[row][col]='o';return 95;}}}}//o o//for ( row = 0; row < MAX_ROW; row++){for( col=0;col<=MAX_COL-2;col++){if(chess_board[row][col]==' '){if((chess_board[row][col-1]=='o')&&(chess_board[row][col+1]=='o')&&((chess_board[row][col-2]==' ')||(chess_board[row][col+2]==' '))){chess_board[row][col]='o';return 96;}if((chess_board[row+1][col]=='o')&&(chess_board[row-1][col]=='o')&&((chess_board[row+2][col]==' ')||(chess_board[row-2][col]==' '))){chess_board[row][col]='o';return 97;}if((chess_board[row-1][col-1]=='o')&&(chess_board[row+1][col+1]=='o')&&((chess_board[row-2][col-2]==' ')||(chess_board[row+2][col+2]==' '))){chess_board[row][col]='o';return 98;}if((chess_board[row+1][col-1]=='o')&&(chess_board[row-1][col+1]=='o')&&((chess_board[row+2][col-2]==' ')||(chess_board[row-2][col+2]==' '))){chess_board[row][col]='o';return 99;}}}} // oo //for ( row = 0; row < MAX_ROW; row++){for( col=0;col<=MAX_COL-2;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row][col+check]=='o')chess++;}if ((chess==2)&&(chess_board[row][col+2]==' ')&&(chess_board[row][col-1]==' ')){if(chess_board[row][col+3]==' '){chess_board[row][col+2]='o';return 100;}else if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 101;}}}}}//o检查列  oo //for ( col = 0; col < MAX_COL; col++){for( row=0;row<=MAX_ROW-2;row++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row+check][col]=='o')chess++;}if ( (chess==2)&&(chess_board[row+2][col]==' ')&&(chess_board[row-1][col]==' ')){if(chess_board[row+3][col]==' '){chess_board[row+2][col]='o';return 0102;}else if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 103;}}}}}//检o查所有对角线  '\' oo //for( row=0;row<=(MAX_ROW-2);row++){for( col=0;col<=(MAX_COL-2);col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row+check][col+check]=='o')chess++;}if((chess==2)&&(chess_board[row+2][col+2]==' ')&&(chess_board[row-1][col-1]==' ')){if(chess_board[row+3][col+3]==' '){chess_board[row+2][col+2]='o';return 104;}else if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 105;}}}}}//o检查所有对角线  '/' oo //for( row=MAX_ROW-1;row>=1;row--){for( col=0;col<=MAX_COL-2;col++){if(chess_board[row][col]=='o'){chess=1;for( check=1;check<=1;check++){if(chess_board[row-check][col+check]=='o')chess++;}if((chess==2)&&(chess_board[row-2][col+2]==' ')&&(chess_board[row+1][col-1]==' ')){if(chess_board[row-3][col+3]==' '){chess_board[row-2][col+2]='o';return 106;}else if(chess_board[row+2][col-2]==' '){chess_board[row+1][col-1]='o';return 0107;}}}}}int r=a-1,c=b-1,suiji;suiji=rand()%4;switch (suiji){case 0:for( row=r;row>=0;row--)//1{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 108;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 109;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 110;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 111;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 112;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 113;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 114;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 115;}}}}}for( row=r;row>=0;row--)//2{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 116;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 117;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 118;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 119;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 120;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 121;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 122;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 123;}}}}}for( row=r;row<MAX_ROW;row++)//3{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 124;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 125;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 126;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 127;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 128;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 129;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 130;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 131;}}}}}for( row=r;row<MAX_ROW;row++)//4{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 132;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 133;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 134;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 135;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 136;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 137;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 138;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 139;}}}}}break;case 1:for( row=r;row>=0;row--)//2{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 140;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 141;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 142;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 143;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 144;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 145;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 146;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 147;}}}}}for( row=r;row>=0;row--)//1{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 148;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 149;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 150;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 151;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 152;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 153;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 154;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 155;}}}}}for( row=r;row<MAX_ROW;row++)//3{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 156;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 157;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 158;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 159;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 160;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 161;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 162;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 163;}}}}}for( row=r;row<MAX_ROW;row++)//4{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 164;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 165;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 166;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 167;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 168;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 169;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 170;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 171;}}}}}break;case 2:for( row=r;row<MAX_ROW;row++)//3{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 172;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 173;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 174;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 175;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 176;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 177;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 178;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 179;}}}}}for( row=r;row<MAX_ROW;row++)//4{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 180;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 181;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 182;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 183;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 184;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 185;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 186;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 187;}}}}}for( row=r;row>=0;row--)//1{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 188;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 189;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 190;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 191;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 192;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 193;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 194;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 195;}}}}}for( row=r;row>=0;row--)//2{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 196;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 197;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 198;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 199;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 200;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 201;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 202;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 203;}}}}}break;case 3:for( row=r;row<MAX_ROW;row++)//4{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 204;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 205;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 206;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 207;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 208;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 209;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 210;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 211;}}}}}for( row=r;row>=0;row--)//1{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 212;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 213;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 214;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 215;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 216;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 217;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 218;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 219;}}}}}for( row=r;row>=0;row--)//2{for( col=c;col<MAX_COL;col++){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 220;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 221;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 222;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 223;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 224;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 225;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 226;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 227;}}}}}for( row=r;row<MAX_ROW;row++)//3{for( col=c;col>=0;col--){if((chess_board[row][col]=='o')&&( ((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' '))||((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' '))||((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' '))||((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')))){if((chess_board[row][col-1]==' ')&&(chess_board[row][col+1]==' ')){if(chess_board[row][col-2]==' '){chess_board[row][col-1]='o';return 228;}else if(chess_board[row][col+2]==' '){chess_board[row][col+1]='o';return 229;}}else if((chess_board[row-1][col]==' ')&&(chess_board[row+1][col]==' ')){if(chess_board[row-2][col]==' '){chess_board[row-1][col]='o';return 230;}else if(chess_board[row+2][col]==' '){chess_board[row+1][col]='o';return 231;}}else if((chess_board[row+1][col-1]==' ')&&(chess_board[row-1][col+1]==' ')){if(chess_board[row+2][col-2]==' '){chess_board[row+1][col+1]='o';return 232;}else if(chess_board[row-2][col+2]==' '){chess_board[row-1][col+1]='o';return 233;}}else if((chess_board[row-1][col-1]==' ')&&(chess_board[row+1][col+1]==' ')){if(chess_board[row-2][col-2]==' '){chess_board[row-1][col-1]='o';return 234;}else if(chess_board[row+2][col+2]==' '){chess_board[row+1][col+1]='o';return 235;}}}}}break;}{//follow tightly//int empty=0,i=0;int situation[8][2];if(chess_board[r+1][c-1]==' ')  {empty++;situation[i][0]=r+1;situation[i++][1]=c-1;}if(chess_board[r+1][c]==' ')    {empty++;situation[i][0]=r+1;situation[i++][1]=c;}if(chess_board[r+1][c+1]==' ')  {empty++;situation[i][0]=r+1;situation[i++][1]=c+1;}if(chess_board[r][c-1]==' ')    {empty++;situation[i][0]=r;situation[i++][1]=c-1;}if(chess_board[r][c+1]==' ')    {empty++;situation[i][0]=r;situation[i++][1]=c+1;}if(chess_board[r-1][c-1]==' ')  {empty++;situation[i][0]=r-1;situation[i++][1]=c-1;}if(chess_board[r-1][c]==' ')    {empty++;situation[i][0]=r-1;situation[i++][1]=c;}if(chess_board[r-1][c+1]==' ')  {empty++;situation[i][0]=r-1;situation[i++][1]=c+1;}srand((unsigned int)time(0));i= rand()%empty;r=situation[i][0];c=situation[i][1];chess_board[r][c]='o';return 236;}while (1){row = rand() % MAX_ROW;col = rand() % MAX_COL;if (chess_board[row][col] != ' '){continue;}chess_board[row][col] = 'o';break;}return 237;
}

2000行C代码实现简易版“阿尔法狗”相关推荐

  1. 80行代码实现简易版摩斯码编译器

    @80行代码实现简易摩斯码翻译器 dict1={ #字母转换成摩斯码"A":"01","B":"1000"," ...

  2. 详解200行Python代码实现控制台版2048【总有一款坑适合你】【超详细】

    跟着实验楼学习了2048的Python实现,先丢个地址 200行Python代码实现2048 我接触Python时间不长,只了解一些基本的语法和容器,在学习的过程中遇到不少问题,这里做一个记录. cu ...

  3. 纯css爱心代码-最近超级火的打火机与公主裙中的爱心代码(简易版)

    theme: cyanosis 最近打火机与公主裙中的爱心代码超级火,看着特别心动,让俺用css来写个简易版!!! 先看效果: 代码拆解: 主要是分为3大部分 分子颗粒 爱心 动画 代码实现: 分子颗 ...

  4. 王者荣耀——bat批处理文件,自动刷金币版(脱胎于30行Python代码刷金币版),Windows双击即可运行!

    参考<30行Python代码刷王者荣耀金币>:https://segmentfault.com/a/1190000012520431 1.源代码 以下是源代码部分,全部复制到文本文档, 用 ...

  5. java代码鸟飞_180行原生js代码实现简易版飞行的小鸟游戏

    /**原理简单,(简单碰撞判断,定时器运用)复制代码直接运行即可,如果没有声音文件,则去除几处调用游戏声效的代码即可**/ *{ margin: 0; padding: 0; list-style: ...

  6. 2048游戏代码python_200 行代码实现简易版 2048 游戏 (python)

    当然这一篇需要你有一定的python基础?如果你没有python基础不要着急,你可以先去找一些python的基础教程去了解了解学习学习这门短小精悍的语言. 好了,说了那么说没用的话,现在正式开始 创建 ...

  7. python实现2048编程_200 行代码实现简易版 2048 游戏 (python)

    当然这一篇需要你有一定的python基础?如果你没有python基础不要着急,你可以先去找一些python的基础教程去了解了解学习学习这门短小精悍的语言. 好了,说了那么说没用的话,现在正式开始 创建 ...

  8. matlab中ismember_MATLAB 代码格式化简易版

    function formatMcodetry %#okdocument = matlab.desktop.editor.getActive;position = document.Selection ...

  9. php自动关闭页面代码,自动生成伪静态页面代码(简易版)

    在你的动态php页面最顶端放置代码:<?php  ob_start(); ?> 然后在页面最底部放置代码:<?php $info = ob_get_contents(); $file ...

最新文章

  1. Yii2 主从 数据库
  2. linux环境下企业基于域名访问的web于电子邮件服务器 论文,基于Linux平台的企业邮件服务器搭建...
  3. android Intent和IntentFilter
  4. python不会怎么办_怕你还不会Python函数,我特意为你整理了一篇博客
  5. 借助模糊测试 深耕细作你的压力测试
  6. Powershell基本命令总结(更新中)
  7. SpringBoot整合mongodb数据库
  8. 【科睿唯安】注意,最新SCI/SSCI列表,警惕这7本期刊被剔除?
  9. Win10显示多个虚拟桌面
  10. kubernetes(k8s):使用statefulset部署mysql主从集群
  11. 作业帮冯雪胡不归问题_【凭谁唤君胡不归作文】作业帮
  12. 千姿百态项目经理2——“缥缈”项目经理
  13. struts2架构网站漏洞修复详情与利用漏洞修复方案
  14. 面试心得与总结---BAT、网易、蘑菇街
  15. css总结 -使用display:inline-block,出现元素高度错位
  16. css input 如何去掉点击后出现的边框
  17. Unity---Shader
  18. [CF1616H]Keep XOR Low / [CF_GYM102331B]Bitwise Xor
  19. H323测试---安装GNUG服务器
  20. 案例驱动式Python学习笔记【第六篇】电子宠物

热门文章

  1. 科技新品 | 创维比手机还纤薄的电视;TCL三款智慧伴学平板电脑;三星扩充车用内存产品阵容...
  2. windows10回收站图标不刷新
  3. 【整理】微软开发认证体系考试科目及代码
  4. 表达爱情html,表达爱意的爱情句子
  5. 光学仿真2020-12-09
  6. 女朋友的生日可以忘记,这200条Git命令请务必记住
  7. 导出ppt中所有文本框
  8. python好用的库存尾货女装_Python抓取淘宝女装信息(一)
  9. 冀教版四年级计算机教案,冀教版信息技术四年级全册教案.doc
  10. 【感悟】2019/3/11