anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
|
|
konan_ 65 (Normal User)
Newbie
Messaggi: 19
Iscritto: 20/12/2011
|
sono ad un punto morto, devo sviluppare la stampa del campo da gioco che mi visualizzi il progresso dei giocatori sul campo, ho creato una matrice 7x9, però quando vado a stamparla se do il printf di stampa della matrice dentro al ciclo for per mandare avanti la struct mi stampa una matrice a giocatore (combinandole tra l'altro insieme, rendendo il tutto incomprensibile), se metto il comando di stampa della matrice fuori dal for mi stampa si i giocatori nella giusta posizione su una sola matrice, ma poi mi stampa anche i numeri delle caselle dove dovrebbe esserci su il giocatore, e poi non ho la minima idea di come fare se ci son 2 giocatori sulla stessa caselle
ecco uno de tanti codici che ho scritto
Codice sorgente - presumibilmente Delphi |
// Stampa campo for (r=0; r<RIGHE; r++){ printf("\n"); for (c=0; c<COLONNE; c++){ if (giocatori[1].tiri == campo[r][c]){ for (i=0; i<numeroGiocatori; i++){ printf(" G%d", i+1); } } else{ printf("%7d", campo[r][c]); } } }
|
help me please!
|
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
1) non ho capito cosa dovrebbe fare quel ciclo, potresti commentare le righe?
2) considera che se stampi 2 caratteri vai in un altra cella, quindi la rappresentazioni viene sfasata
3) usa una libreria grafica, per una cosa del genere dovrebbe andare bene anche graphics.h
|
|
konan_ 65 (Normal User)
Newbie
Messaggi: 19
Iscritto: 20/12/2011
|
Codice sorgente - presumibilmente Python |
// Stampa campo for (r=0; r<RIGHE; r++){// ciclo solito per stampare una matrice printf("\n"); for (c=0; c<COLONNE; c++){// ciclo solito per stampare una matrice /*questo if e il seguente for mi servono per stampare a video la posizione dei giocatori, chessò G1 al posto del numero 3, G2 al posto del 5 ecc*/ if (giocatori[1].tiri == campo[r][c]){ for (i=0; i<numeroGiocatori; i++){ printf(" G%d", i+1); } } else{ printf("%7d", campo[r][c]); } } }
|
io sostanzialmente devo stampare a video la posizione dei giocatori nel campo, quindi ho creato in precedenza una matrice 7X9, quindi i primi 2 cicli for sono i cicli normali per la stampa della matrice,
Codice sorgente - presumibilmente C/C++ |
for (r=0; r<RIGHE; r++){
printf("\n");
for (c=0; c<COLONNE; c++){
printf("%7d", campo[r][c]);
}
}
|
quindi se scrivo solo questo mi viene fuori la mia matrice numerata da 1 a 63
dopo di che però ho bisogno che il programma non me la riempia solo con i numeri, ma chessò, se il giocatore1 è nella casella 23 al posto del 23 scriva G1 ecc. quindi ho creato il 3° ciclo for che mi va a controllare la posizione dei giocatori nella struct, e che in teoria mi dovrebbe sostituire il giocatore al numero della casella in cui si trova, ma non lo fa, o meglio, a seconda del codice che scrivo e all'ordine dei cicli for lo fa anche, ma non come dovrebbe, i risultati che ho ottenuto sono:
-stampa di tante matrici quanti sono i giocatori, una sotto l'altra in cui nella prima compare il giocatore1, nella seconda il 2 ecc.
-stampa di tante matrici quanti sono i giocatori, ma questa volta affiancate quindi una roba del tipo 1 1 1 2 2 2 3 3 3 G1 4 4 5 G2 5 6 6 6 7 7 7
8 8 G3 9 9 9 10 10 10 11 11 11 12 12 12 13 13 13
- stampa di una sola matrice su cui però risulta che tutti i giocatori siano sulla stessa cella nonostante non sia così
- stampa di una sola matrice dove la posizione dei giocatori è giusta, ma questi non vengono sostituiti al numero quindi tipo 1 2 3 4 G1 5 6 G2 7
poco mi importa se sfaso la grafica, dopo in qualche modo spero di rimediare a quello, il top sarebbe anche se riuscissi a confrontare i vari giocatori tra loro, e nel caso siano su una stessa casella stampare una roba tipo G1/G2... |
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
prova così:
Codice sorgente - presumibilmente Delphi |
for (r=0; r<RIGHE; r++){ printf("\n"); for (c=0; c<COLONNE; c++){ for (i=0; i<numeroGiocatori; i++){ if (giocatori[i].tiri == campo[r][c]){ printf(" G%d", i+1); } else if(i==numeroGiocatori-1){ printf("%7d", campo[r][c]); } } } }
|
|
|
konan_ 65 (Normal User)
Newbie
Messaggi: 19
Iscritto: 20/12/2011
|
ci siamo quasi, con il codice così scritto mi posiziona i giocatori correttamente nel campo, però fa la sostituzione numero-giocatore solo con l'ultimo, con gli altri mi stampa giocatore e numero...
|
|
anthony015 (Member)
Pro
Messaggi: 116
Iscritto: 20/05/2011
|
Codice sorgente - presumibilmente C++ |
int flagCiclo=0; for (r=0; r<RIGHE; r++){ printf("\n"); for (c=0; c<COLONNE; c++){ for (i=0; i<numeroGiocatori; i++){ if (giocatori[i].tiri == campo[r][c]){ printf(" G%d", i+1); flagCiclo=1; } else if(i==numeroGiocatori-1&&flagCiclo==0){ printf("%7d", campo[r][c]); } } flagCiclo=0; } }
|
|
|
konan_ 65 (Normal User)
Newbie
Messaggi: 19
Iscritto: 20/12/2011
|
grazie mille per l'aiuto della stampa del campo, ora mi manca un'ultima cosa, riuscire a stampare una classifica sulla base della posizione dei singoli giocatori, come posso fare a confrontarli tra loro e quando la posizione di un giocatore è maggiore di quella di tutti gli altri metterlo in prima posizione ecc?
Ultima modifica effettuata da konan_ 65 il 18/01/2012 alle 19:39 |
|