Guest User

Untitled

a guest
Sep 24th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.93 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int xctr = 0, octr = 0;
  4.  
  5. int winner(int n, char tic[n][n]) {
  6.     int i, j; // i - rows; j - columns
  7.  
  8.     int flag = 0;
  9.  
  10.     for(i = 0; i < n; i++){// horizontal
  11.         j = 0;
  12.         while(j < n){
  13.             if(tic[i][j] == tic[i][j+1]){
  14.                 if(j+1 == n-1){
  15.                     if(tic[i][j+1] == 'X')
  16.                         xctr = xctr + j + 2;
  17.                     else
  18.                         octr = octr + j + 2;
  19.                     flag = 1;
  20.                     break;
  21.                 } else
  22.                     j++;
  23.             } else {
  24.                 break;
  25.             }
  26.         }
  27.     }
  28.  
  29.     for(j=0; j<n; j++) { // vertical
  30.         i=0;
  31.         while(i<n){
  32.             if(tic[i][j] == tic[i+1][j]){
  33.                 if(i+1 == n-1){
  34.                     if(tic[i+1][j] == 'X')
  35.                         xctr = xctr + i + 2;
  36.                     else
  37.                         octr = octr + i + 2;
  38.                     flag = 1;
  39.                     break;
  40.                 } else
  41.                     i++;
  42.             } else{
  43.                 break;
  44.             }
  45.         }
  46.     }
  47.  
  48.     i=0;
  49.     while(i<n){ // diagonal left
  50.         if(tic[i][i]  == tic[i+1][i+1]){
  51.             if(i + 1 == n - 1){
  52.                 if(tic[i+1][i+1] == 'X')
  53.                     xctr = xctr + i + 2;
  54.                 else if(tic[i+1][i+1] == 'O')
  55.                     octr = octr + i + 2;
  56.                 flag = 1;
  57.                 break;
  58.             } else
  59.                 i++;
  60.         } else {
  61.             break;
  62.         }
  63.     }
  64.  
  65.     i=0;
  66.     while(i<n){ // diagonal right
  67.         if(tic[i][n-1]  == tic[i+1][n-2]){
  68.             if(i + 1 == n - 1){
  69.                 if(tic[i+1][n-2] == 'X')
  70.                     xctr = xctr + i + 2;
  71.                 else if (tic[i+1][n-2] == 'O')
  72.                     octr = octr + i + 2;
  73.                 flag = 1;
  74.                 break;
  75.             } else {
  76.                 i++;
  77.                 n--;
  78.             }
  79.         } else {
  80.             break;
  81.         }
  82.     }
  83.  
  84.     return flag;
  85. }
  86.  
  87. int main() {
  88.     int n;
  89.     int k;
  90.  
  91.     printf("Input size: ");
  92.     scanf("%d", &n);
  93.  
  94.     char tic[n][n];
  95.  
  96.     printf("Input Xs and Os: \n");
  97.     for(k=0; k<n; k++){
  98.         scanf("%s", tic[k]);
  99.     }
  100.  
  101.     if(winner(n, tic) == 1){
  102.         printf("xctr: %d\n", xctr);
  103.         printf("octr: %d\n", octr);
  104.         if(xctr == octr)
  105.             printf("It's a draw.");
  106.         else if(xctr > octr)
  107.             printf("X wins.");
  108.         else
  109.             printf("O wins.");
  110.     } else
  111.         printf("Invalid. No one wins.");
  112.  
  113.     return 0;
  114. }
Add Comment
Please, Sign In to add comment