PaweU

Kółko i krzyżyk

Oct 25th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.52 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. char pozycja[9]={0};
  4.  
  5. int wpis_o (int x)
  6. {
  7.     int f=0;
  8.    
  9.     printf ("\nTeraz gra kolko! Wpisz cyfre od 1 do 9\n");
  10.  
  11.     while (f==0)
  12.     {
  13.         scanf ("%d", &x);
  14.         if (pozycja[x-1] || x<1 || x>9) printf ("Wprowadzono bledna liczbe. Sprobuj ponownie.\n");
  15.         else f=1;
  16.     }
  17.     pozycja[x-1]='o';
  18. }
  19.  
  20. int wpis_x (int x)
  21. {
  22.     int f=0;
  23.    
  24.     printf ("\nTeraz gra krzyzyk! Wpisz cyfre od 1 do 9\n");
  25.  
  26.     while (f==0)
  27.     {
  28.         scanf ("%d", &x);
  29.         if (pozycja[x-1] || x<1 || x>9) printf ("Wprowadzono bledna liczbe. Sprobuj ponownie.\n");
  30.         else f=1;
  31.     }
  32.     pozycja[x-1]='x';
  33. }
  34.  
  35.  
  36. void drukowanie ()
  37. {  
  38.     printf ("\n");
  39.  
  40.     int i;
  41.     for (i=0; i<9; ++i)
  42.     {
  43.         if (pozycja[i] != 0) printf ("%c ", pozycja[i]);
  44.         else printf (". ");
  45.        
  46.         if (i==2 || i==5) printf ("\n");
  47.     }
  48.     printf ("\n");
  49. }
  50.  
  51.  
  52. void sprawdzenie ()
  53. {
  54.     int i, f=0, kolko=0, krzyzyk=0;
  55.    
  56.     for (i=0; i<9; i+=3) //sprawdzenie w poziomie
  57.     {
  58.         if (pozycja[i]!=0 && pozycja[i]==pozycja[i+1] && pozycja[i+1]==pozycja[i+2])
  59.         {
  60.             if (pozycja[i]=='o') kolko=1;
  61.             else if (pozycja[i]=='x') krzyzyk=1;
  62.            
  63.             f=1;
  64.             break;
  65.         }
  66.     }
  67.  
  68.     if(f==0)
  69.     {
  70.         for (i=0; i<3; ++i) //sprawdzenie w pionie
  71.         {
  72.             if (pozycja[i]!=0 && pozycja[i]==pozycja[i+3] && pozycja[i+3]==pozycja[i+6])
  73.             {
  74.                 if (pozycja[i]=='o') kolko=1;
  75.                 else if (pozycja[i]=='x') krzyzyk=1;
  76.                
  77.                 f=1;
  78.                 break;
  79.             }
  80.         }
  81.     }
  82.  
  83.     if(f==0) //przekatne
  84.     {
  85.         if (pozycja[0]!=0 && pozycja[0]==pozycja[4] && pozycja[4]==pozycja[8])
  86.         {
  87.             if (pozycja[0]=='o') kolko=1;
  88.             else if (pozycja[0]=='x') krzyzyk=1;
  89.         }
  90.        
  91.         else if (pozycja[2]!=0 && pozycja[2]==pozycja[4] && pozycja[4]==pozycja[6])
  92.         {
  93.             if (pozycja[2]=='o') kolko=1;
  94.             else if (pozycja[2]=='x') krzyzyk=1;
  95.         }
  96.     }
  97.  
  98.     if (krzyzyk==1)
  99.     {
  100.         printf ("\nKoniec gry, wygrywa krzyzyk!");
  101.         exit(0);
  102.     }
  103.    
  104.     else if (kolko==1)
  105.     {
  106.         printf ("\nKoniec gry, wygrywa kolko!");
  107.         exit(0);
  108.     }
  109.    
  110. }
  111.  
  112. int czyremis()
  113. {
  114.     int i, f=0;
  115.    
  116.     for (i=0; i<9; ++i)
  117.     {
  118.         if (pozycja[i]==0) f=1;
  119.     }
  120.    
  121.     if (f==0)
  122.     {
  123.         printf ("\nKoniec gry, mamy remis!");
  124.         exit (0);
  125.     }
  126. }
  127.  
  128. int main (void)
  129. {
  130.     int x, y, g;
  131.  
  132.     printf ("KOLKO I KRZYZYK - GRA\n");
  133.    
  134.     while (1)
  135.     {
  136.         wpis_o (x);
  137.         drukowanie ();
  138.  
  139.         sprawdzenie ();
  140.        
  141.         czyremis();
  142.        
  143.         wpis_x (y);
  144.         drukowanie ();
  145.  
  146.         sprawdzenie ();
  147.     }
  148.  
  149.  
  150.     return 0;
  151. }
Add Comment
Please, Sign In to add comment