ciao a tutti necessitavo una mano per questo codice.
Il mazzo deve essere mescolato spostando la prima carta in una posizione casuale. (ogni nodo rappresenta una carta). questa operazione va ripetuta x volte...dove x è il parametro di ingresso num_mescolate. Qualcuno mi sa aiutare?
il codice è il seguente:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef enum {CUORI=0,QUADRI,FIORI,PICCHE} TipoSeme;
typedef enum {DUE=2,TRE,QUATTRO,CINQUE,SEI,SETTE,OTTO,NOVE,DIECI,FANTE,DONNA,RE,ASSO} TipoValore;
typedef struct
{
TipoSeme seme;
TipoValore valore;
} TipoInfo;
typedef struct carta
{
TipoInfo info;
struct carta* next;
} TipoCarta;
typedef TipoCarta* TipoMazzo;
void InserisciCartaInTesta(TipoMazzo* indirizzo_mazzo, TipoCarta* indirizzo_carta);
TipoMazzo creaMazzo();
void stampaCarte(TipoMazzo mazzo);
void mescolaMazzo(TipoMazzo* indirizzo_mazzo, int num_mescolate);
int main()
{
TipoMazzo mazzo = NULL;
mazzo = creaMazzo();
printf("Mazzo appena creato:\n");
stampaCarte(mazzo);
mescolaMazzo(&mazzo,100);
printf("\n\nMazzo dopo essere stato mescolato:\n");
stampaCarte(mazzo);
return 0;
}
void InserisciCartaInTesta(TipoMazzo* indirizzo_mazzo, TipoCarta* indirizzo_carta)
{
indirizzo_carta->next = *indirizzo_mazzo;
*indirizzo_mazzo = indirizzo_carta;
}
TipoMazzo creaMazzo()
{
TipoMazzo nuovo_mazzo = NULL;
int i=0, j=0;
for (i=0; i < 4; i++)
{
for (j=0; j < 13; j++)
{
TipoCarta* carta = (TipoCarta*)malloc(sizeof(TipoCarta));
carta->info.seme = i;
carta->info.valore = j+2;
InserisciCartaInTesta(&nuovo_mazzo,carta);
}
}
return nuovo_mazzo;
}
void stampaCarte(TipoMazzo mazzo)
{
TipoCarta* carta = mazzo;
while (carta != NULL)
{
switch(carta->info.valore)
{
case FANTE:
printf("J ");
break;
case DONNA:
printf("Q ");
break;
case RE:
printf("K ");
break;
case ASSO:
printf("A ");
break;
default:
printf("%d ",carta->info.valore);
}
switch(carta->info.seme)
{
case QUADRI:
printf("QUADRI, ");
break;
case CUORI:
printf("CUORI, ");
break;
case PICCHE:
printf("PICCHE, ");
break;
case FIORI:
printf("FIORI, ");
}
carta = carta->next;
}
}
void mescolaMazzo(TipoMazzo* indirizzo_mazzo, int num_mescolate)
{
}
grazie anticipatamente