Advertisement
Guest User

stackoverflow

a guest
Oct 28th, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.21 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4.  
  5. char wynik[9]; /* Tabela dostępna globalnie, by funkcje wincond, ruch oraz printer mogły jej używać*/
  6. char p1[20]; /*Nazwa pierwszego gracza */
  7. char p2[20];/*Nazwa drugiego gracza */
  8. typedef enum bool {false=0, true=1} bool;
  9.  
  10. void printer(void);
  11. int ruch(char, bool);
  12. int wincond(void);
  13.  
  14.  
  15.  
  16.  
  17.  
  18. int main()
  19. {
  20.     int i=0;
  21.     int random; /* Zmienna bez określonej wartości przyjmuje losowe wartości*/
  22.     bool ruc=false; /*Definiuje, kto aktualnie wykonuje ruch*/
  23.     int input=0;
  24.     for(i=0;i<=8;i++)
  25.             wynik[i]='#';
  26.     printf("Cześć! Podaj imię pierwszego gracza:\n");
  27.     scanf(" %100s",p1);
  28.     printf("Cześć %s! Jak ma na imię Twój przeciwnik?\n", p1);
  29.     scanf(" %100s",p2);
  30.     printf("Oto plansza! Zapoznajcie się z nią.\n\n");
  31.     printer();
  32.     if(random%2==0){
  33.         printf("Zaczyna %s! ", p2);
  34.     }
  35.     else{
  36.         printf("Zaczyna %s! ", p1);
  37.         ruc=true;
  38.     }
  39.     for(i=0;i<9;i++)
  40.     {
  41.         if(ruc==true){
  42.             printf(" %s, które pole chcesz zapełnić?\n", p1);
  43.             scanf("%d", &input);
  44.             ruch(input,ruc);
  45.             printf("%d", ruch(input,ruc));
  46.             while(ruch(input, ruc)==0){
  47.                 printf("Wprowadzono złą liczbę!\n");
  48.                 scanf("%d", &input);
  49.                 ruch(input, ruc);}
  50.             printer();
  51.             wincond();
  52.         }
  53.         else if(ruc==false){
  54.             printf(" %s, które pole chcesz zapełnić?\n", p2);
  55.             scanf("%d", &input);
  56.             ruch(input, ruc);
  57.             printf("%d", ruch(input,ruc));
  58.             while(ruch(input,ruc)==0){
  59.                 printf("Wprowadzono złą liczbę!\n");
  60.                 scanf("%d", &input);
  61.                 ruch(input, ruc);}
  62.             printer();
  63.             wincond();
  64.         }
  65.         ruc = !ruc;
  66.         if(wincond()==1 || wincond()==2){
  67.             if(wincond()==1)
  68.                 printf("Wygrywa %s!", p1);
  69.             if(wincond()==2){
  70.                 printf("Wygrywa %s!", p2);}
  71.             break;
  72.         }
  73.     }
  74.     return 0;
  75. }
  76.  
  77.  
  78. int ruch(char pole, bool gracz){
  79.     int i=0;
  80.     for(i=0;i<9;i++){
  81.         if(gracz==true){
  82.             if(pole==i+1){
  83.                 if(wynik[i]=='#'){
  84.                     wynik[i]='X';
  85.                     return 3;}
  86.                 else if(wynik[i]!='#')
  87.                     return 0;
  88. }}
  89.         else if(gracz==false){
  90.             if(pole==i+1){
  91.                 if(wynik[i]=='#'){
  92.                     wynik[i]='O';
  93.                     return 3;}
  94.                 else if(wynik[i]!='#')
  95.                     return 0;
  96.     }}}}
  97.  
  98. void printer(void)
  99. {
  100.     printf("%c %c %c\n%c %c %c\n%c %c %c \n \n", wynik[0], wynik[1], wynik[2],wynik[3], wynik[4], wynik[5], wynik[6], wynik[7], wynik[8]);
  101. }
  102. int wincond(){
  103.     if((wynik[0]=='X' && wynik[1]=='X' && wynik[2]=='X') || (wynik[0]=='X' && wynik[3]=='X' && wynik[6]=='X') || (wynik[0]=='X' && wynik[4]=='X' && wynik[8]=='X')
  104.        || (wynik[1]=='X' && wynik[4]=='X' && wynik[7]=='X' ) || (wynik[2]=='X' && wynik[5]=='X' && wynik[8]=='X')
  105.        || (wynik[3]=='X' && wynik[4]=='X' && wynik[5]=='X') || (wynik[6]=='X' && wynik[7]=='X' && wynik[8]=='X') || (wynik[2]=='X' && wynik[4] == 'X' && wynik[6] == 'X')){
  106.         return 1;}
  107.         else if((wynik[0]=='O' && wynik[1]=='O' && wynik[2]=='O') || (wynik[0]=='O' && wynik[3]=='O' && wynik[6]=='O') || (wynik[0]=='O' && wynik[4]=='O' && wynik[8]=='O')
  108.        || (wynik[1]=='O' && wynik[4]=='O' && wynik[7]=='O' ) || (wynik[2]=='O' && wynik[5]=='O' && wynik[8]=='O')
  109.        || (wynik[3]=='O' && wynik[4]=='O' && wynik[5]=='O') || (wynik[6]=='O' && wynik[7]=='O' && wynik[8]=='O') || (wynik[2]=='O' && wynik[4] == 'O' && wynik[6] == 'O')){
  110.         return 2;  
  111.         }
  112.         else
  113.             return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement