#include <stdio.h>
void init_board(char arr[][3])
{
        int i=0;

        int j=0;
        for(i=0;i<3;i++)
       {
               for(j=0;j<3;j++)
             {
                     arr[i][j]=' ';
             }
       }
}
void show_board(char arr[][3])
{
        int i=0;
        for(i=0;i<3;i++)
       {
               printf(" %c | %c | %c ",arr[i][0],arr[i][1],arr[i][2]);
               if(i!=2)
               printf("\n---|---|---\n");
        }
        printf("\n");
}
void player_move(char arr[][3])
{
        int x,y;
        printf("请输入坐标括");
        scanf("%d%d",&x,&y);
        if(arr[x-1][y-1]!=' ')
       {
              printf("该位置已经被占有:");
              player_move(arr);
       }
       else
      {
              arr[x-1][y-1]='x';
      }
}
void computer_move(char arr[][3])
{
        int i=0;
        int j=0;
        for(i=0;i<3;i++)
       {
               for(j=0;j<3;j++)
              {
                      if(arr[i][j]==' ')
                     {
                            arr[i][j]='0';
                            return 0;
                      }
       
              }
             if(arr[i][j]=='0')
             break;
       }
}
char check(char arr[][3])
{
        int i=0;
        char key;
        for(i=0;i<3;i++)
       {
               if((arr[i][0]!=' ')&&(arr[i][0]==arr[i][1])&&(arr[i][1]==arr[i][2]))
                       key=arr[i][0];
              if((arr[0][i]!=' ')&&(arr[0][i]==arr[1][i])&&(arr[1][i]==arr[2][i]))
                      key=arr[0][i];
             if((arr[i][i]!=' ')&&(arr[0][0]==arr[1][1])&&(arr[1][1]==arr[2][2]))
                      key=arr[i][i];
             if((arr[0][2]!=' ')&&(arr[0][2]==arr[1][1])&&(arr[1][1]==arr[2][0]))
                      key=arr[0][2];
        }
        if(key=='x')
       {
               printf("玩家赢!\n");
               return 1;
        }
       else if(key=='0')
      {
              printf("电脑赢!\n");
              return 0;
      }
     else 
     return -1;          
}
int main()
{
        int done;
        char arr[3][3];
        init_board(arr);
        show_board(arr);
        do
       {
               player_move(arr);
               done=check(arr);
               if(done!=-1)
                     break;  
               computer_move(arr);
              done=check(arr);
              show_board(arr);
        }while(done==-1);
        return 0;
}


   该游戏比较简单,并没有实现电脑的智能性。