×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: C
Posted by: Damian Pytkowski
Added: May 2, 2016 8:20 PM
Modified: May 14, 2016 11:13 AM
Views: 6
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <math.h>
  4. void pusta(int t[][3]);
  5. void druk(int t[][3]);
  6. void zapisz(int t[][3],int m, int n,char w);
  7. void gracz(int t[][3],char m, int n, char w);
  8. int spr(int t[][3],int w);
  9.  
  10. void main()
  11. {
  12.     int tab[3][3],i,m,n,w=0,x=0,y=0;
  13.     char c='t';
  14.     while(c=='t')
  15.     {
  16.         system("cls");
  17.         i=0;
  18.         printf("kolko  %d:%d  krzyzyk\n\n\n",x,y);
  19.         pusta(tab);
  20.         druk(tab);
  21.         while(i<9)
  22.         {
  23.             gracz(tab,m,n,'O');
  24.             printf("kolko  %d:%d  krzyzyk\n\n\n",x,y);
  25.             druk(tab);
  26.             i++;
  27.             w=spr(tab,'O');
  28.             if(w==3)
  29.             {
  30.                 printf("Wygrywa gracz O!");
  31.                 x++;
  32.                 break;
  33.             }
  34.             if(i==9){break;}
  35.             gracz(tab,m,n,'X');
  36.             printf("kolko  %d:%d  krzyzyk\n\n\n",x,y);
  37.             druk(tab);
  38.             i++;
  39.             w=spr(tab,'X');
  40.             if(w==3)
  41.             {
  42.                 printf("Wygrywa gracz X!");
  43.                 y++;
  44.                 break;
  45.             }
  46.         }
  47.     system("cls");
  48.     printf("kolko  %d:%d  krzyzyk\n\n\n",x,y);
  49.     druk(tab);
  50.     printf("\nKoniec gry.\nZagrac ponownie? t/n: ");
  51.     fflush(stdin);
  52.     scanf("%c",&c);
  53.     }
  54.     system("cls");
  55.     printf("Wynik:\nkolko  %d:%d  krzyzyk\n\n\n",x,y);
  56. }
  57. int spr(int t[][3],int w)
  58. {
  59.     int i,j,k;
  60.     for(i=0;i<3;i++)
  61.     {
  62.         k=0;
  63.         for(j=0;j<3;j++)
  64.         {if(t[i][j]==w)
  65.             {k++;}}
  66.         if(k==3)
  67.         {break;}else{k=0;}
  68.  
  69.         for(j=0;j<3;j++)
  70.         {if(t[j][i]==w)
  71.             {k++;}}
  72.         if(k==3)
  73.         {break;}else{k=0;}
  74.  
  75.         for(j=0;j<3;j++)
  76.         {if(t[j][2-j]==w)
  77.             {k++;}}
  78.         if(k==3)
  79.         {break;}else{k=0;}
  80.  
  81.         for(j=0;j<3;j++)
  82.         {if(t[j][j]==w)
  83.             {k++;}}
  84.         if(k==3)
  85.         {break;}else{k=0;}
  86.     }
  87.     return k;
  88. }
  89.  
  90.  
  91. void gracz(int t[][3],char m, int n,char w)
  92. {
  93.         printf("\nGracz %c: ",w);
  94.         fflush(stdin);
  95.         scanf("%c%d",&m,&n);
  96.         while(t[m-65][n-1]!=45 || n-1>2)
  97.         {
  98.             printf("Zla komorka! Podaj ponownie: ");
  99.             fflush(stdin);
  100.             scanf("%c%d",&m,&n);
  101.         }
  102.         zapisz(t,m,n,w);
  103.         system("cls");
  104. }
  105. void pusta(int t[][3])
  106. {
  107.     int i,j;
  108.     for(i=0;i<3;i++)
  109.     {
  110.         for(j=0;j<3;j++)
  111.         {
  112.             t[i][j]=45;
  113.         }
  114.     }
  115. }
  116. void druk(int t[][3])
  117. {
  118.     int i,j;
  119.     printf("     1  2  3\n\n");
  120.     for(i=0;i<3;i++)
  121.     {
  122.         printf("  %c  ",65+i);
  123.         for(j=0;j<3;j++)
  124.         {
  125.             printf("%c  ",t[i][j]);
  126.         }
  127.         printf("\n\n");
  128.     }
  129. }
  130. void zapisz(int t[][3],int m, int n,char w)
  131. {
  132.     int i;
  133.     for(i=0;i<3;i++)
  134.     {
  135.         if(65+i==m)
  136.         {
  137.             t[i][n-1]=w;
  138.             break;
  139.         }
  140.     }
  141. }
  142.