ehm.... tutti spariti?
ehm.... tutti spariti?
Non fai prima a spiegare a parola cosa hai fatto?
E per "cosa hai fatto" intendo dire com' è fatta la mappa e che variabili hai usato, che significato ha pezzo.asse_orizzontale e verticale?
allora il mio problema è questo: io ho un pezzo che devo fare scorrere lungo la mappa. il pezzo non deve oltrepassare i margini della mappa e deve fermarsi se incontra un 1.
Se ho capito il tuo problema, questo potrebbe aiutartiOriginariamente inviato da francesco1985
allora il mio problema è questo: io ho un pezzo che devo fare scorrere lungo la mappa. il pezzo non deve oltrepassare i margini della mappa e deve fermarsi se incontra un 1.
codice:#include <stdio.h> #include <stdlib.h> #define RMAX 20 #define CMAX 20 int main() { char btm; char campo[RMAX][CMAX]; int x=0,y=0; int i,j; for(i=0;i<RMAX;i++) { for(j=0;j<CMAX;j++) { campo[i][j]='+'; } } campo[x][y]='@'; do { system("clear"); for(i=0;i<RMAX;i++) { for(j=0;j<CMAX;j++) { printf("%c ",campo[i][j]); } putchar('\n'); } campo[x][y]='+'; btm = getchar(); switch(btm) { case 'i': if(x>0) x--; break; case 'k': if(x<RMAX-1) x++; break; case 'j': if(y>0) y--; break; case 'l': if(y<CMAX-1) y++; break; default: puts("?!"); break; } campo[x][y]='@'; while(getchar()!='\n'); }while(btm!='E' || btm!='e'); }
ciao ghemon-a, ti ringrazio per la tua attenzione, ma il tuo codice non va bene per quello che mi serve. il pezzo in questione è un array con varie forme es. una T,L,Z,I tutti formati da degli 1. il tuo codice nel mio caso potrebbe essere semplificato con un paio di cicli e un if che impone una i e j < della larghezza e dell'alteza della mappa. A me serve invece che il pezzo in questione si fermi ai limiti se e solo se un 1 presente nel pezzo tocca i limiti della mappa, successivamente voglio che il pezzo si fermi anche quando incontri altri 1 sulla mappa.
Come è rappresentato il pezzo?
codice:int pezzo2 [3][3] ={ {0, 0, 0}, {1, 1, 1}, {0, 1, 0},};
quindi... nessuno mi puo aiutare?
Mi spiace ma non si capisce, hai scritto del codice ma non hai detto che significato hai dato alle variabili.
Manca di sapere:
asse_orizzontale e asse_verticale sono le coordinate del pezzo a partire dal centro? Cioè in posizione (1,1) della matrice del pezzo?
E calcoli se il movimento è possibile prima o dopo averlo fatto (quindi dopo aver decrementato asse_verticale)?
partono da 0.0