Salve a tutti perchè mi da sempre le stesse carte ai giocatori?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct{
char *faccia;
char *seme;
}Carta;
typedef struct {
Carta carte[5]
}Mano;
typedef struct {
Mano giocatore[5];
}Giocatore;
void riempiMazzo(Carta * const wMazzo, const char * wFaccia[], const char * wSeme[]);
void mischia(Carta *const wMazzo);
void distribuisci(const Carta * const wMazzo);
int main()
{
Carta mazzo[52]; /*dichiara il vettore di elementi di tipo carta*/
/*inizializza i vettori di puntatori*/
const char *faccia[]={"Asso", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
const char *seme[]={"Cuori", "Quadri", "Fiori", "Picche"};
srand(time(NULL));
riempiMazzo(mazzo, faccia, seme);
mischia(mazzo);
distribuisci(mazzo);
return 0;
}
void riempiMazzo(Carta * const wMazzo, const char *wFaccia[], const char *wSeme[])
{
int i;
for(i=0; i<=51; i++)
{
wMazzo[i].faccia=wFaccia[i%13];
wMazzo[i].seme=wSeme[i/13];
}
}
void mischia(Carta *const wMazzo)
{
int i;
int j;
Carta temp;
for(i=0; i<=51; i++)
{
j=rand()%52;
temp=wMazzo[i];
wMazzo[j]=temp;
}
}
void distribuisci(const Carta * const wMazzo )
{
int i;
int j;
Mano L;
Giocatore G;
for(j=0; j<5; j++)
{
for(i=0; i<5; i++)
{
G.giocatore[j].carte[i].faccia=wMazzo[i].faccia;
G.giocatore[j].carte[i].seme=wMazzo[i].seme;
/**L.carte[i].faccia=wMazzo[i].faccia;
L.carte[i].seme=wMazzo[i].seme;**/
}
}
for(j=0; j<5; j++)
{
printf("giocatore %d\n\n", j+1);
for(i=0; i<5; i++)
{
printf("%s di %s\n", G.giocatore[j].carte[i].faccia, G.giocatore[j].carte[i].seme);
}
printf("\n");
}
}