Código fuente de Posa
# incluir ltstdio.h gt
# incluir ltstdlib.h gt
# incluir lttime.h gt
# incluir ltstring. h gt
Tarjeta de estructura //
{
char traje[10] /*color*/
char cara[10] ];/*Card*/
};
enum { posA, posB, posC, posD}; //Borrar la posición de todos.
Ubicación de la estructura
{
Tarjeta de estructura get CARD[25]; //La tarjeta que recibe cada persona
}; p>
p>
Posición de la estructura[4]; //Asignar cuatro posiciones
Tarjeta de estructura izquierda CARD[8] //Tarjeta
Tarjeta de estructura [54]; //54 cartas
char *palo[]={ "Espada", "Corazón", "Trébol", "Diamante" };
char *cara[ ] = {"A","2","3","4","5","6","7","8","9",
"10", " "Jota", "Reina", "Rey"};
/*Función: barajar el orden de 52 cartas,
Parámetro de función: estructura de matriz wCard, que representa 52 cartas.
Valor de retorno de la función: Ninguno
*/
Barajado no válido (tarjeta de estructura *wCard)
{
int i,j;
Temperatura de la tarjeta de estructura;
for(I = 0;ilt54;i)
{
j = rand() 54;
temp = wCard[I];
wCard[I]= wCard[j]; ;
}
}
/*Función: resultado de la transacción
Parámetro de función: matriz de estructura wCard, que indica que hay 54 tarjetas tarjeta.
Valor de retorno de la función: Ninguno
*/
Transacción no válida (tarjeta de estructura *wCard)
{
int i, Aidx=0, bidx=0, cidx=0, didx = 0;
Aleatorio (tarjeta); //Aleatorio
/* * * * * * * * * * * *Se reparte la primera baraja de cartas, con solo 50 cartas. Divide 4 cartas en las posiciones A, B, C y D* * * * * * * * * *
//. Después de que se repartieron 50 cartas por primera vez, A y B obtuvieron una carta más, por lo que C y D ocuparon el primer lugar por segunda vez y se repartieron 40 cartas cada vez*/
for(I = 0 ;ilt50;i )//El número de cartas repartidas
{
//printf(" 10s 5s \ n ", wCard[i]. Palo, wCard[i]. cara);
if(i4==0)
posA. get card[aidx]= wCard[I];
else if(i4==1)
Posición. obtener tarjeta[bidx]= wCard[I];
si no(i4==2)
Posición.
get card[cidx]= wCard[I];
else if(i4==3)
Posición. get card[didx]= wCard[I];
}
/* * * * * * * *Las cuatro tarjetas restantes se usan como tarjetas* * * * * * * *
tarjeta izquierda[0]= wCard[i];
tarjeta izquierda[1]= wCard[i];
tarjeta izquierda[2] = wCard[i];
tarjeta izquierda[3]= wCard[i];
Barajar (tarjeta); //Barajar las cartas nuevamente
/* * * * * * * * * * * * La segunda baraja de cartas, solo 50 cartas, se distribuyen en las cuatro posiciones A, B, C y D. Se reservan 4 cartas y se reserva 1 * * * * * * * * * * * *
for(I = 0; I lt50; I)//El número de cartas repartidas
{
//printf (" 10s 5s \n ",wCard[i].set,wCard[i].face);
if(i4==0)
Posición. get card[cidx]= wCard[I];
else if(i4==1)
Posición. obtener tarjeta[didx]= wCard[I];
si no(i4==2)
posA. get card[aidx]= wCard[I];
else if(i4==3)
Posición. get card[bidx]= wCard[I];
}
/* * * * * * * *Las cuatro cartas restantes se usan como cartas, por lo que una* * *Esa es 8 cartas* * * * * * * *
tarjeta izquierda[4]= wCard[i];
tarjeta izquierda[5]= wCard[i];
tarjeta izquierda[4]= wCard[i];
p>
tarjeta izquierda[6]= wCard[i];
tarjeta izquierda[7]= wCard[i];
}
/ *Función: Organiza las 52 cartas en orden de picas, corazones, flores y diamantes, y organiza sus valores nominales en el orden orden de A ~ K.
Parámetros de función: matriz de estructura wCard, que representa 52 tarjetas de diferentes colores y denominaciones.
Matriz de punteros wFace, que apunta a la cadena de valor nominal.
La matriz de punteros wSuit apunta a la cadena del traje.
Valor de retorno de la función: Ninguno
*/
void FillCard(tarjeta de estructura wCard[], char *wSuit[], char *wFace[])
{
inti
for(I = 0;ilt52;i)
{
strcpy( wCard [i].suit, wSuit[I/13]);
strcpy(wCard[i].face, w face[I 13]);
}
//wCard[53]. face= "grande"; //Rey de tamaño
strcpy(wCard[52]). palo, "pequeño");
strcpy(wCard[52]).
cara, "fantasma");
strcpy(wCard[53]). palo, "grande");
strcpy(wCard[53]). face, "fantasma");
}
Impresión no válida(char ch)//tarjeta de salida
{
int I;
Cambiar (canal)
{
Caso "A": for(I = 0;ilt25;i)
{
printf("10s 5s\n ", posición[posA].getcard[i].suit,posA.getcard[i].cara);
}
Descanso;
Caso "B": for(I = 0;ilt25;i)
{
printf("10s 5s\n ", posición[posB].getcard[i].suit, posición[posB].getcard[i].cara);
}
Rotura;
Caso "C": for(I = 0;ilt25;i)
{
printf("10s 5s\n ", posición[posC].getcard[i] .set, position[posC].face);
}
Romper;
Caso "D": for(I = 0;ilt25;i)
{
printf("10s 5s\n", posición[posD].getcard[i].traje,posD.getcard[i]. cara);
}
Romper;
}
}
Nulo salidaLeftCard()//tarjeta de salida
{
int I;
for(I = 0;ilt8;i)
printf("10s 5s\ n ", leftCard[i]. Traje, leftCard [i].cara);
}
int main()
{
char pos
srand(time(NULL));
FillCard(carta, palo, cara);
//Barajar (carta);
Repartir (carta);
printf("Seleccione su posición (A, B, C, D): ";
scanf ("c", amppos);
Print (pos); //Envía las cartas en tu posición.
/* * * * * * * *La siguiente salida son las tarjetas de otros excepto tú* * * * * * * *
If (pos!='A ')
{
printf(" A: \ n ");
Imprimir(' A '); >
If (pos!='B ')
{
printf(" B:\ n ");
Imprimir(' B ' );
}
if (pos!='C ')
{
printf(" C:\n ") ;
Imprimir(' C ');
}
Si (pos!='D ')
{
printf(" D: \ n ");
Imprimir(' D ');
}
printf(" Tarjeta: \n ");
outputLeftCard(); //Tarjeta de salida
devuelve 0;
}