Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 27

Discussione: [C] Limiti di un mappa

  1. #11
    ehm.... tutti spariti?

  2. #12
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    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?

  3. #13
    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.

  4. #14
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Originariamente 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.
    Se ho capito il tuo problema, questo potrebbe aiutarti
    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');
    }

  5. #15
    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.

  6. #16
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Come è rappresentato il pezzo?

  7. #17
    codice:
    int pezzo2 [3][3] ={    {0, 0, 0},
                            {1, 1, 1},
                            {0, 1, 0},};

  8. #18
    quindi... nessuno mi puo aiutare?

  9. #19
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    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)?

  10. #20
    partono da 0.0

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.