Programa que reparte la baraja inglesa de forma aleatoria en C

Aqui les dejo un programa que reparte la baraja inglesa de forma aleatoria en C hecho para compilar con gcc en linux.

#include<stdio.h>
#include<time.h> 
main()
{
int a,b,j,i=0,numn,v,n,d,k=1,u,q,carta=0,x;
srand(time(NULL));
int compara[4][13];
srand(time(NULL));
int comparan[52];

for(a=0;a<4;a++)
	for(b=0;b<13;b++)
	compara[a][b]=0;


struct carta{
	char *figura[4];
       char *numero[13];
	char *(reparte[2])[52];
}*baraja,ap;


ap.figura[0]="corazon";
ap.figura[1]="diamante";
ap.figura[2]="trebol";
ap.figura[3]="pica";

ap.numero[0]="As";
ap.numero[1]="dos";
ap.numero[2]="tres";
ap.numero[3]="cuatro";
ap.numero[4]="cinco";
ap.numero[5]="seis";
ap.numero[6]="siete";
ap.numero[7]="ocho";
ap.numero[8]="nueve";
ap.numero[9]="diez";
ap.numero[10]="J";
ap.numero[11]="Q";
ap.numero[12]="K";
baraja= & ap;

	for(u=0,x=1;u<4;u++)
		for(q=0;q<13;q++)
				ap.reparte[x][carta++]= ap.numero[q];
			
carta=0;
	for(b=0,x=0;b<13;b++)
		for(q=0;q<4;q++)
				ap.reparte[x][carta++]=ap.figura[q];
			
			


for(d=0;d<52;d++)
	comparan[d]=90;

		for(j=0;j<52;j++ )
		  {
			numn=rand()%52;
			n=0;
			for(v=0;v<52;v++)
				{
				if(comparan[v] != numn)
				continue;
				n++;
				}
			
			if(n == 0)
  			 {
 printf("%d %s %s\n",k++,(*baraja).reparte[0][numn],baraja->reparte[1][numn]);
comparan[i++]=numn;
				
			 }
			else {
				numn=rand()%52;
				j--;
				}
		  }
}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>