crysoberil

Untitled

Oct 3rd, 2011
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 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==0));
  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.         //Check result has the result on who won
  34.         if(checkresult==0||checkresult==1)
  35.         {
  36.             flag=1;
  37.             break;
  38.         }
  39.     }
  40.     printf("\a");
  41.     if(flag)
  42.     {
  43.         if(checkresult)
  44.         printf("Player 2 is the winner!!!");
  45.         else
  46.         printf("Player 1 is the winner!!!");
  47.     }
  48.     else
  49.         printf("Game drawn");
  50.         getch();
  51. }
  52. void print()
  53. {
  54.     short i;
  55.     printf("\n\n\n\n\n");
  56.     for(i=0;i<3;i++)
  57.     {
  58.         printf(" %c | %c | %c\n",matrix[i][0],matrix[i][1],matrix[i][2]);
  59.         if(i!=2)
  60.         {
  61.             printf("-----------\n");
  62.         }
  63.     }
  64.  
  65. }
  66. int check()
  67. {
  68.     //check() return 0 or 1 or 2
  69.     if(checkchar('X'))
  70.         return 0;
  71.     if(checkchar('O'))
  72.         return 1;
  73.     return 2;
  74. }
  75. int checkchar(char c)
  76. {
  77.     int i,j,flag1,flag2;
  78.     flag1=flag2=1;
  79.     for(i=0;i<3;i++)
  80.     {
  81.         if(matrix[i][i]!=c)
  82.             flag1=0;
  83.         if(matrix[i][2-i]!=c)
  84.             flag2=0;
  85.     }
  86.     if(flag1||flag2)
  87.         return 1;
  88.     for(i=0;i<3;i++)
  89.     {
  90.         flag1=flag2=1;
  91.         for(j=0;j<3;j++)
  92.         {
  93.             if(matrix[i][j]!=c)
  94.                 flag1=0;
  95.             if(matrix[j][i]!=c)
  96.                 flag2=0;
  97.             if(!flag1&&!flag2)
  98.                 break;
  99.         }
  100.         if(flag1||flag2)
  101.             return 1;
  102.     }
  103.     return 0;
  104. }
  105.  
  106.  
Add Comment
Please, Sign In to add comment