voidInitBoard(char board[ROW][COL], int row, int col) { int i = 0; int j = 0; for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { board[i][j] =' '; } } }
voidDisplayBoard(char board[ROW][COL], int row, int col) { int i = 0; int j = 0; for (i = 0; i < row; i++) { printf("\t\t\t\t"); for (j = 0; j < col; j++) {
printf(" %c ", board[i][j]); if (j < col - 1) { printf("|");//分割列 } } printf("\n"); if (i < row - 1) { printf("\t\t\t\t"); for (j = 0; j < col; j++) { printf("---");//分割行 if (j < col - 1) { printf("|");//分割列 } } } printf("\n");//换行 } }
intis_full(char board[ROW][COL], int row, int col) { int i = 0; int j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { if (' ' == board[i][j]) { return0; } } } return1; } charis_win(char board[ROW][COL], int row, int col) { int i = 0; for (i = 0; i < row; i++)//判断行 { if (board[i][0]==board[i][1]&&board[i][1]==board[i][2]&&board[i][1]!=' ') { return board[i][1]; }
} for (i = 0; i < row; i++)//判断列 { if (board[0][i]==board[1][i]&&board[1][i]==board[2][i]&&board[1][i]!=' ') { return board[1][i]; }
voidInitBoard(char board[ROW][COL], int row, int col) { int i = 0; int j = 0; for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { board[i][j] =' '; } } } voidDisplayBoard(char board[ROW][COL], int row, int col) { int i = 0; int j = 0; for (i = 0; i < row; i++) { printf("\t\t\t\t"); for (j = 0; j < col; j++) {
printf(" %c ", board[i][j]); if (j < col - 1) { printf("|"); } } printf("\n"); if (i < row - 1) { printf("\t\t\t\t"); for (j = 0; j < col; j++) { printf("---"); if (j < col - 1) { printf("|"); } } } printf("\n"); } }
voidplayer_move(char board[ROW][COL], int row, int col) { printf("\t\t\t\t该你操作了->\n"); printf("\t\t\t\t请输入坐标->\n"); printf("\t\t\t\ttip:坐标1-3,用空格分开:"); int x = 0; int y = 0; while (1) { scanf("%d%d", &x, &y); if (x >= 1 && x <= row && y >= 1 && y <= col) { if (' ' == board[x-1][y-1]) { board[x-1][y-1] = '*'; break; } else { printf("\t\t\t\t该坐标已被占用请重新输入:\n"); } } else { printf("\t\t\t\t该坐标非法啦\n"); printf("\t\t\t\t请重新输入\n"); } } } voidcomputer_move(char board[ROW][COL], int row, int col) { printf("\t\t\t\t该电脑了->\n"); printf("\t\t\t\t你要完蛋了\n"); while (1) { int i = 0; int flag = 0; for (i = 0; i < row; i++)//判断行 { if (board[i][0] == '*' && board[i][1] == '*'&& board[i][2]==' ') { board[i][2]='#'; flag = 1; break; } if (board[i][0] == '*' && board[i][2] == '*' && board[i][1] == ' ') { board[i][1] = '#'; flag = 1; break; } } if (1 == flag) break; for (i = 0; i < row; i++)//判断列 { if (board[0][i] == '*' && board[1][i] == '*'&& board[2][i] == ' ') { board[2][i]='#'; flag = 2; break; } if (board[0][i] == '*' && board[2][i] == '*' && board[1][i] == ' ') { board[1][i] = '#'; flag = 2; break; } } if(2==flag) break; if (board[0][0] == '* ' && board[1][1] == '* ' && board[2][2] == ' ')//判断对角线 { board[2][2]='#'; break; } if (board[2][0] == '* ' && board[1][1] == '* ' && board[0][2] == ' ') { board[0][2]='#'; break; }
} intis_full(char board[ROW][COL], int row, int col) { int i = 0; int j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { if (' ' == board[i][j]) { return0; } } } return1; } charis_win(char board[ROW][COL], int row, int col) { int i = 0; for (i = 0; i < row; i++)//判断行 { if (board[i][0]==board[i][1]&&board[i][1]==board[i][2]&&board[i][1]!=' ') { return board[i][1]; }
} for (i = 0; i < row; i++)//判断列 { if (board[0][i]==board[1][i]&&board[1][i]==board[2][i]&&board[1][i]!=' ') { return board[1][i]; }