crysoberil

Untitled

Oct 4th, 2011
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.05 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<conio.h>
  3. char matrix[3][3];
  4. void print();
  5. int check();
  6. int checkchar(char c);
  7. int main()
  8. {
  9.     int i,j,a,b,checkresult,flag=0;
  10.     for(i=0;i<3;i++)
  11.     for(j=0;j<3;j++)
  12.     matrix[i][j]=32;
  13.     print();
  14.     for(i=1;i<=9;i++)
  15.     {
  16.         printf("\n\n\n\n\nPlayer %d, Input new co-ordinates : ",(i%2)+2*(!(i%2)));
  17.         do
  18.         {
  19.             scanf("%d",&a);
  20.             scanf("%d",&b);
  21.             fflush(stdin);
  22.             if(a<1||a>3||b<1||b>3||(matrix[a-1][b-1]==88)||(matrix[a-1][b-1]==79))
  23.             {
  24.                 printf("\n\aRe-input...\n");
  25.                 continue;
  26.             }
  27.             break;
  28.         }
  29.         while(1);
  30.         matrix[a-1][b-1]=(i%2?88:79);
  31.         print();
  32.         checkresult=check();
  33.         if(checkresult!=2)
  34.         {
  35.             flag=1;
  36.             break;
  37.         }
  38.     }
  39.     printf("\a");
  40.     if(flag)
  41.     {
  42.         if(checkresult)
  43.         printf("Player 2 is the winner!!!");
  44.         else
  45.         printf("Player 1 is the winner!!!");
  46.     }
  47.     else
  48.         printf("Game drawn");
  49.         getch();
  50. }
  51. void print()
  52. {
  53.     short i;
  54.     printf("\n\n\n\n\n");
  55.     for(i=0;i<3;i++)
  56.     {
  57.         printf(" %c | %c | %c\n",matrix[i][0],matrix[i][1],matrix[i][2]);
  58.         if(i!=2)
  59.         {
  60.             printf("-----------\n");
  61.         }
  62.     }
  63.  
  64. }
  65. int check()
  66. {
  67.     if(checkchar('X'))
  68.         return 0;
  69.     if(checkchar('O'))
  70.         return 1;
  71.     return 2;
  72. }
  73. int checkchar(char c)
  74. {
  75.     int i,j,flag1,flag2;
  76.     flag1=flag2=1;
  77.     for(i=0;i<3;i++)
  78.     {
  79.         if(matrix[i][i]!=c)
  80.             flag1=0;
  81.         if(matrix[i][2-i]!=c)
  82.             flag2=0;
  83.     }
  84.     if(flag1||flag2)
  85.         return 1;
  86.     for(i=0;i<3;i++)
  87.     {
  88.         flag1=flag2=1;
  89.         for(j=0;j<3;j++)
  90.         {
  91.             if(matrix[i][j]!=c)
  92.                 flag1=0;
  93.             if(matrix[j][i]!=c)
  94.                 flag2=0;
  95.             if(!flag1&&!flag2)
  96.                 break;
  97.         }
  98.         if(flag1||flag2)
  99.             return 1;
  100.     }
  101.     return 0;
  102. }
  103.  
  104.  
Add Comment
Please, Sign In to add comment