Ciao a tutti
Eccomi ancora qui, tuttavia mi è rimasto un solo problema...risolto questo sarò a posto per un bel pò XD
Allora...io ho una lista ordinata (che funziona correttamente) che tiene conto ordinatamente delle mosse più veloci fatte da entrambi gli utenti (quindi la priorità è data solo dal tempo e nn dai giocatori), in ordine da più veloce a più lenta ovviamente. Devo passare le prime 10 di queste mosse ad una coda...riesco a far passare e stampare a video solo la prima delle più veloci...perchè apparentemente non mi funziona il ciclo che dovrebbe far ripetere l'inserimento per 10 volte...
Queste sono le mie strutture dati!
codice:
struct top10_mosse_gioc1_2 //lista ordinata
{
double tempo;
int colonna;
int turno_utente;
struct top10_mosse_gioc1_2 *next;
};
struct top10_mosse_gioc1_2*testa=NULL;
//CODA
struct nodo
{
int turno_utente;
int colonna;
double tempo;
struct nodo *next;
};
struct coda
{
struct nodo *primo;
struct nodo *ultimo;
};
struct coda coda;
coda.primo = NULL;
coda.ultimo = NULL;
Il codice della mia funzione è
codice:
void coda_10_mosse(struct coda coda, struct top10_mosse_gioc1_2*testa)
{
struct nodo*nuovo;
struct top10_mosse_gioc1_2 *temp;
temp = testa;
int i;
for(i=0;i<=10;i++)
{
nuovo=(struct nodo*)malloc(sizeof(struct nodo));
nuovo->tempo = temp->tempo;
nuovo->colonna = temp->colonna;
nuovo->turno_utente = temp->turno_utente;
nuovo->next= NULL;
if(coda.primo==NULL)
{
coda.primo=nuovo;
}
else
{
coda.ultimo->next=nuovo;
coda.ultimo=nuovo;
}
temp=temp->next;
}
stampa_coda(coda);
return;
}
come ho già detto, il problema pare essere il for perchè se lo tolgo la funzione esegue correttamente il suo lavoro....ma non capisco dove sia sbagliato questo ciclo!!!
:S help!!
grazie in anticipo!!