#include<stdio.h>
#include<stdlib.h>
int main()
{
 void  empty(char arr[][3]);
 void   print(char arr[][3]);
 void   player(char[][3]);
 void   conplay(char[][3]);
 char  check(char arr[][3]); 
 char  arr[3][3];
 char  key;
 printf("游戏开始");
 printf("\n");
 empty(arr);
 print(arr);
 do
 {
  player(arr);
  key=check(arr);
  if(key!=' ')
   break;
  conplay(arr);
  key=check(arr);
  print(arr);
 }while(key==' ');
 if(key=='X')
 {
  print(arr);
  printf("玩家胜出\n");
 }
 else 
 {
  print(arr);
  printf("电脑胜出\n");
  
 }
 return 0;  
}
void  empty(char arr[][3])
{
 int i,j;
 for(i=0;i<3;i++)
  for(j=0;j<3;j++)
   arr[i][j]=' ';
}
void   print(char  arr[][3])
{
 int i;
 for(i=0;i<3;i++)
 {
  printf(" %c | %c | %c ",arr[i][0],arr[i][1],arr[i][2]);
  printf("\n");
  if(i!=2)
   printf("---|---|---");
  printf("\n");
 }
}
void  player(char  arr[][3])
{
 int i,j;
 printf("请输入所要下的位置:");
 scanf("%d%d",&i,&j);
 if(i>3||j>3)
 {
  printf("输入错误,再重新输入\n");
  player(arr);
 }
 
    if(arr[i-1][j-1]!=' ')
    {
     printf("此位置已被填充,请重新输入");
     player(arr);
    }
    else  
     arr[i-1][j-1]='X';
}
void   conplay(char  arr[][3])
{
    int i,j;
    for(i=0;i<3;i++)
    {
     for(j=0;j<3;j++)
     {
      if(arr[i][j]==' ')
       arr[i][j]='O';
      else  
       continue;
      return 0;
     }
    }
}
char  check(char arr[][3])
{
    int i;
    for(i=0;i<3;i++)
    {
     if(arr[i][0]==arr[i][1]&&arr[i][0]==arr[i][2])
      return arr[i][1];
     else  if(arr[1][i]==arr[2][i]&&arr[1][i]==arr[0][i])
      return arr[1][i];
     else  if(arr[0][0]==arr[1][1]&&arr[1][1]==arr[2][2])
      return (arr[0][0]);
     else  if(arr[2][0]==arr[1][1]&&arr[1][1]==arr[0][2])
      return (arr[2][0]);
    }
    return ' ';
}