Guest User

Untitled

a guest
Jan 22nd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.13 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include<time.h>
  5. #include "getnum.c"
  6. #define ORO 1
  7. #define BASTO 2
  8. #define COPA 3
  9. #define ESPADA 4
  10. #define CANTCARTAS 52
  11.  
  12. typedef struct
  13. {
  14.     int palo;
  15.     int figura;
  16. }tcarta;
  17. typedef struct
  18. {
  19.     tcarta cartas[CANTCARTAS];
  20.     int cantCartas;
  21. }tmazo;
  22. typedef struct
  23. {
  24.     int puntosjug;
  25.     int puntospc;
  26. }tpunto;
  27. void rellenar(tmazo* mazo);
  28. void desordenar(tmazo* mazo);
  29. void generaaleatorio(tmazo *cartas,tcarta jugador[],tcarta compu[]);
  30. void compara(tcarta jugador[],tcarta compu[],tpunto* tabla);
  31. void asignapuntos(tpunto* tabla,int figjug,int figpc,int manojug,int manopc);
  32. int main()
  33. {
  34.     srand((int)time(NULL));
  35.     tcarta jugador[5],compu[5];
  36.     tmazo cartas;
  37.     tpunto tabla;
  38.     tabla.puntosjug=tabla.puntospc=0;
  39.     int n;
  40.     rellenar(&cartas);
  41.     desordenar(&cartas);
  42.     do
  43.     {
  44.         generaaleatorio(&cartas,jugador,compu);
  45.         compara(jugador,compu,&tabla);
  46.         printf("\n%d puntos jugador\n %d puntos maquina",tabla.puntosjug,tabla.puntospc);
  47.         n=getint(" \n-1 para dejar de jugar\n");
  48.     }
  49.     while(n!=-1);
  50.  
  51. return 0;
  52. }
  53. void rellenar(tmazo* mazo)
  54. {
  55.     int i,j;
  56.     int k =1;
  57.     for(i=1;i<=13;i++)
  58.         {
  59.             for(j=1;j<5;j++)
  60.             {
  61.                 ((mazo->cartas)[k]).figura=i;
  62.                 ((mazo->cartas)[k]).palo=j;
  63.                 k++;
  64.             }
  65.         }
  66.     mazo->cantCartas = CANTCARTAS;
  67.        
  68.     }
  69. void desordenar(tmazo* mazo)
  70. {
  71.     int i,aux;
  72.     tcarta temp;
  73.     for(i=0;i<52;i++)
  74.     {
  75.         aux=rand()%(52);
  76.         temp=((mazo->cartas)[i]);
  77.         ((mazo->cartas)[i])=((mazo->cartas)[aux]);
  78.         ((mazo->cartas)[aux])=temp;
  79.     }
  80. }
  81. void generaaleatorio(tmazo* mazo,tcarta jugador[],tcarta compu[])
  82. {
  83.     int i=0,j;
  84.     if (mazo->cantCartas>=10){
  85.     for( i=0,j=CANTCARTAS-mazo->cantCartas;i<5;i++,j++)
  86.     {
  87.         jugador[i]=(mazo->cartas)[j];
  88.         compu[i]=(mazo->cartas)[j+5];
  89.     }
  90.     mazo->cantCartas-=10;
  91.     printf("cartas jug\n");
  92.     for(i=0;i<5;i++)
  93.     printf("%d\t",jugador[i].figura);
  94.    
  95.     printf("\ncartas pc\n");
  96.     for(i=0;i<5;i++)
  97.     printf("%d\t",compu[i].figura);
  98.    
  99. }
  100. }
  101.  
  102. void compara(tcarta jugador[],tcarta compu[],tpunto* tabla)
  103. {
  104.     int manopc=1,manojug=1,ctrpc,ctrjug;
  105.     int figurapc=0,figurajug=0;
  106.     int auxpc[5]={0},auxjug[5]={0};
  107.     int i,j;
  108.    
  109.     for(i=0;i<4;i++)
  110.     {
  111.         for(j=i+1;j<5;j++)
  112.         {
  113.  
  114.             if((jugador[i].figura==jugador[j].figura)&&(auxjug[i]==0 ||auxjug[j]==0))
  115.             {
  116.                 auxjug[i]=auxjug[j]=1;
  117.                 ctrjug++;
  118.                
  119.                
  120.                
  121.             }
  122.             if((compu[i].figura==compu[j].figura)&&(auxpc[i]==0||auxpc[j]==0))
  123.             {
  124.                   auxpc[i]=auxpc[j]=1;
  125.                   ctrpc++;
  126.             }
  127.         }
  128.          if(ctrpc>=manopc)
  129.          {
  130.              manopc=ctrpc;
  131.              figurapc=compu[j].figura;
  132.            
  133.          }
  134.          if(ctrjug>=manojug)
  135.          {
  136.              manojug=ctrjug;
  137.              figurajug=jugador[j].figura;
  138.          }
  139.          ctrjug=ctrpc=1;
  140.     }
  141.     if(manojug>1 || manopc>1)
  142.     asignapuntos(tabla,figurajug,figurapc,manojug,manopc);
  143.    
  144. }
  145. void asignapuntos(tpunto* tabla,int figjug,int figpc,int manojug,int manopc)
  146. {
  147.     printf("%d mano jug \n %d mano pc",manojug,manopc);
  148.     if(manojug>manopc)
  149.     {
  150.         tabla->puntosjug+=1;
  151.     }
  152.     else if(manojug==manopc)
  153.         {
  154.             if(figjug>figpc)
  155.             {
  156.                 tabla->puntosjug+=1;
  157.             }
  158.             else
  159.             {
  160.                 tabla->puntospc+=1;
  161.             }
  162.         }
  163.     if(manopc>manojug)
  164.     {
  165.         tabla->puntospc+=1;
  166.     }
  167.     }
Add Comment
Please, Sign In to add comment