Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.62 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. // o - 79
  6. // x - 88
  7. int funkcijaokomito(char **mat,int mati,int matj,int pobjeda, char prvi, int n, char *pobjednik){
  8.     int brojacX = 0, brojacO = 0;
  9.     for (int i=0; i<matj; i++){
  10.         for (int j=0; j<mati; j++){
  11.             if (mat[j][i] == 'X'){
  12.                 brojacX++;
  13.                 if (brojacX == pobjeda){
  14.                     n = 1;
  15.                     break;
  16.                 }
  17.             }
  18.             if (mat[j][i] == 'O'){
  19.                 brojacO++;
  20.                 if (brojacO == pobjeda){
  21.                     n = 1;
  22.                     break;
  23.                 }
  24.             }
  25.         }
  26.  
  27.         if(brojacO == brojacX && brojacO == pobjeda){
  28.             *pobjednik = prvi;
  29.             break;
  30.         }
  31.         else if (brojacO == pobjeda){
  32.             *pobjednik = 'O';
  33.             break;
  34.         }
  35.         else if(brojacX == pobjeda){
  36.             *pobjednik = 'X';
  37.             break;
  38.         } else{
  39.             n = 5;
  40.         }
  41.  
  42.  
  43.         brojacO = 0;
  44.         brojacX = 0;
  45.     }
  46.  
  47.     return n;
  48. }
  49.  
  50. int funkcijavodoravno(char **mat, int mati, int matj,int pobjeda, char prvi, int n, char *pobjednik){
  51.     int brojacX = 0, brojacO = 0;
  52.  
  53.     for (int i=0; i<mati; i++){
  54.         for (int j=0; j<matj; j++){
  55.             if (mat[i][j] == 'X'){
  56.                 brojacX++;
  57.                 if (brojacX == pobjeda){
  58.                     n = 1;
  59.                     break;
  60.                 }
  61.             }
  62.             if (mat[i][j] == 'O'){
  63.                 brojacO++;
  64.                 if (brojacO == pobjeda){
  65.                     n = 1;
  66.                     break;
  67.                 }
  68.             }
  69.         }
  70.  
  71.         if(brojacO == brojacX && brojacO == pobjeda){
  72.             *pobjednik = prvi;
  73.             break;
  74.         }
  75.         else if (brojacO == pobjeda){
  76.             *pobjednik = 'O';
  77.             break;
  78.         }
  79.         else if(brojacX == pobjeda){
  80.             *pobjednik = 'X';
  81.             break;
  82.         } else{
  83.             n = 5;
  84.         }
  85.  
  86.         brojacX = 0;
  87.         brojacO = 0;
  88.     }
  89.  
  90.     return n;
  91. }
  92. int main()
  93. {
  94.     int n = 2;
  95.     int mati, matj;
  96.     do {
  97.         scanf("%dx%d", &mati, &matj);
  98.         if (mati<3 || matj<3 || mati>10 || matj>10){
  99.             printf("Nedozvoljena dimenzija polja!\n");
  100.         }
  101.     }while (mati<3 || matj<3 || mati>10 || matj>10);
  102.     char** mat;
  103.  
  104.     int pobjeda;
  105.     scanf("%d", &pobjeda);
  106.  
  107.     char prvi;
  108.     scanf(" %c", &prvi);
  109.  
  110.     char niz[2] = {'X', 'O'};
  111.  
  112.     if (prvi=='O'){
  113.         niz[0] = 'O';
  114.         niz [1] = 'X';
  115.     }
  116.  
  117.     mat = (char**)calloc(mati,sizeof(char*));
  118.     for (int i=0; i<mati; i++){
  119.         mat[i] = (char*)calloc(matj,sizeof(char));
  120.         for (int j=0; j<matj; j++){
  121.             mat[i][j] = '-';
  122.             printf("%2c", mat[i][j]);
  123.         }
  124.         printf("\n");
  125.     }
  126.     printf("\n");
  127.  
  128.     char pobjednik = prvi;
  129.     int korxp, koryp, korxd, koryd;
  130.  
  131.     do {
  132.         scanf("%d %d", &korxp, &koryp);
  133.         scanf("%d %d", &korxd, &koryd);
  134.  
  135.         mat[korxp-1][koryp-1] = niz[0];
  136.         mat[korxd-1][koryd-1] = niz[1];
  137.  
  138.         for (int i=0; i<mati; i++){
  139.             for (int j=0; j<matj; j++){
  140.                 printf("%2c", mat[i][j]);
  141.             }
  142.             printf("\n");
  143.         }
  144.         printf("\n");
  145.  
  146.         n = funkcijaokomito( mat, mati, matj, pobjeda, prvi, n, &pobjednik);
  147.  
  148.         if (n == 5){
  149.             n = funkcijavodoravno (mat, mati, matj, pobjeda, prvi, n, &pobjednik);
  150.         }
  151.     }while (n != 1);
  152.  
  153.     printf("Pobjednik je igrac %c!", pobjednik);
  154.  
  155.     return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement