1. #include <stdio.h>
  2.  
  3. int jogo[3][3];
  4.  
  5. int jogar(int coord1, int coord2, int jogador)
  6. {
  7. if (jogo[coord1][coord2]==0)
  8. {
  9. jogo[coord1][coord2]=jogador;
  10. return 0;
  11. }
  12. else return 1;
  13. }
  14.  
  15. int verificar()
  16. {
  17. int x;
  18. for (x=0; x<3; x++)
  19. {
  20. if (((jogo[x][0]==1) && (jogo[x][1]==1) && (jogo[x][2]==1)) || ((jogo[0][x]==1) && (jogo[1][x]==1) && (jogo[2][x]==1))) return 1;
  21. else if (((jogo[x][0]==2) && (jogo[x][1]==2) && (jogo[x][2]==2)) || ((jogo[0][x]==2) && (jogo[1][x]==2) && (jogo[2][x]==2))) return 2;
  22. }
  23. if (((jogo[0][0]==1) && (jogo[1][1]==1) && (jogo[2][2]==1)) || ((jogo[2][0]==1) && (jogo[1][1]==1) && (jogo[0][2]==1))) return 1;
  24. else if (((jogo[0][0]==2) && (jogo[1][1]==2) && (jogo[2][2]==2)) || ((jogo[2][0]==2) && (jogo[1][1]==2) && (jogo[0][2]==2))) return 2;
  25. return 0;
  26. }
  27.  
  28. void novo()
  29. {
  30. int x, y;
  31. for (x=0; x<3; x++)
  32. {
  33. for (y=0; y<3; y++)
  34. {
  35. jogo[x][y]=0;
  36. }
  37. }
  38. }
  39.  
  40. void mostrar()
  41. {
  42. int x, y;
  43. for (x=0; x<3; x++)
  44. {
  45. for (y=0; y<3; y++)
  46. {
  47. switch(jogo[y][x])
  48. {
  49. case 0: printf(" "); break;
  50. case 1: printf("X"); break;
  51. case 2: printf("O"); break;
  52. }
  53. if (y!=2) printf("|");
  54. }
  55. if (x!=2) printf("\n-----\n");
  56. }
  57. printf("\n");
  58. }
  59.  
  60. int main()
  61. {
  62. int x, y;
  63. int i;
  64. novo();
  65. mostrar();
  66. while (verificar()==0)
  67. {
  68. for (i=1; i<3; i++)
  69. {
  70. scanf("%d %d", x, y);
  71. if (jogar(x, y, i)==1) printf("Erro fker");
  72. }
  73. mostrar();
  74. }
  75. return 0;
  76. }