Buenos días a todos!!!
Abusando una vez más de vosotros, os pido un poco de ayuda. Espero que me podáis ayudar pues necesito una pista.
Veréis debo hacer una baraja de cartas española en una pila. Debe estar desordenada y sin repeticiones. He hecho esta función pero no acaba de hacer lo que debe.
void OrdenAleatorio (tPila *pila) {
int i, p,n;
tCarta *nou;
tNode *aux, mou;
srand(time(0));
p = rand()%(MAX_PAL)+1;
n = rand()%(MAX_NUM)+1;
nou = CrearCarta(p,n);
if (EsVaciaPila(pila)) {
aux = (tNode *) malloc (sizeof(tNode));
if (aux != NULL) {
aux->carta = *nou;
aux->seguent = NULL;
pila->cap = aux;
}
}
mou = *pila->cap;
do {
if ((aux->carta->pal == mou->carta->pal) && (aux->carta->num ==mou->carta->pal)) {
mou = mou->seguent;
}
}while (mou.seguent == NULL);
i = Empilar(pila, nou);
}
Y las estructuras:
typedef struct {
int pal;
int num;
}tCarta;
typedef struct {
tCarta carta;
struct tNode *seguent;
}tNode;
typedef struct {
tNode *cap;
}tPila
Me podéis orientar sobre por dónde continuar?
Muchísimas gracias a todos! Os lo agradezco mucho