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!
Il codice della mia funzione è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;
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!!!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; }
:S help!!
grazie in anticipo!!

Rispondi quotando