Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 29
  1. #11
    allora: quando compilavo ed eseguivo il prog. nella mappa mi compariva il pezzo in questione. adesso con la sostituzione delle variabili nn compare nulla e la mappa resta vuota. prima almeno qualkosa compariva adesso niente. perche? questo nn dovrebbe succede dato ke int x e int y , dovrebbero essere uguali a pezzo.x e pezzo.y
    hai provato a compilare ed eseguire?

  2. #12
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non si può compilare perché la funzione

    agg()

    non accetta parametri e tu ne passi 2 ... !
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #13
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Viene visuallizzata una matrice 10 x2 0 , con tutti gli elementi a 0
    crea una matrice 3x3 ,formata da 0 e 1 che graficamente rappresenta un pezzo
    premendo dei tasti la matrice deve essere rappresentata nella matrice grande
    e spostarsi su essa


    Guarda ho corretto un po il codice ma c'e molto da fare ,

    per stampare la matrice ho creato una funzione stampa_mappa()
    per portare a zero gli elementi della matrice , ho aggiunto la funzione azzera_mappa()
    ho modificato la funzione agg che aggiungeva nella matrice "grande" la matrice "piccola"


    continua da qui , vedi le altre fuzioni se sono corrette , o danno problemi .

    codice:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    #define larghezza_colonne 10
    #define altezza_righe 20
    #define dimpezzo 3
    int pezzo2 [3][3] ={    {0, 1, 0},
                            {0, 1, 0},
                            {1, 1, 1} };
    struct blocco{
        int x,y;
        int array[dimpezzo][dimpezzo];
    }pezzo;
    int mappa[altezza_righe][larghezza_colonne]={0};
    int indice_mappai,indice_mappaj,indice_pezzoi=0,indice_pezzoj=0,posizione,righe,colonne,tasto;
    void stampa_mappa();
    void azzera_mappa();
    void nuovo_pezzo();
    int gameover();
    void controllariga();
    void cancellariga();
    int piazza_pezzo ();
    void ruota_pezzo();
    //int aggiorna();
    int movimentopossibile();
    void agg();
    void main()
    {
    pezzo.x=5;
    pezzo.y=0;
    for (indice_pezzoi=0;indice_pezzoi<dimpezzo;indice_pezzoi++){//pezzo
        for (indice_pezzoj=0;indice_pezzoj<dimpezzo;indice_pezzoj++)
        pezzo.array[indice_pezzoi][indice_pezzoj]= pezzo2[indice_pezzoi][indice_pezzoj];
        }//fine pezzo
    
        printf("\n--------------------\n");
    
    stampa_mappa();
    
    for (indice_pezzoi=0;indice_pezzoi<dimpezzo;indice_pezzoi++){//pezzo
         printf("\n%d %d %d",pezzo.array[indice_pezzoi][0],pezzo.array[indice_pezzoi][1],pezzo.array[indice_pezzoi][2]);
    }//fine pezzo
                    printf("\n");
    
    while(1){
    
    switch (getchar()){
        case('s'):
        agg();
            pezzo.y++;
            if(!movimentopossibile(pezzo.x,pezzo.y)){
            pezzo.y--;}
             
           stampa_mappa();
           azzera_mappa();
            for (indice_pezzoi=0;indice_pezzoi<dimpezzo;indice_pezzoi++){//pezzo
            printf("\n%d %d %d ",pezzo.array[indice_pezzoi][0],pezzo.array[indice_pezzoi][1],pezzo.array[indice_pezzoi][2]);}
            printf("\n");
        break;
        case('d'):
                agg();
                pezzo.x++;// x è il movimento in orizzontale
                if(!movimentopossibile(pezzo.x,pezzo.y))//se nn è possibile torna indietro
                pezzo.x--;
                stampa_mappa();
                azzera_mappa();
                break;
        case('a'):
            agg();
            pezzo.x--;
            if(!movimentopossibile(pezzo.x,pezzo.y))
            pezzo.x++;
            stampa_mappa();
            azzera_mappa();
            break;
        case ('w'):
        agg();
    
            ruota_pezzo(pezzo.array[indice_pezzoi][indice_pezzoj]);
            stampa_mappa();
            azzera_mappa();
            for (indice_pezzoi=0;indice_pezzoi<dimpezzo;indice_pezzoi++){//pezzo
            printf("\n%d %d %d ",pezzo.array[indice_pezzoi][0],pezzo.array[indice_pezzoi][1],pezzo.array[indice_pezzoi][2]); }
            printf("\n");
            break;
            default: printf("\n x=%d y=%d\n",pezzo.x,pezzo.y);break;
    }
    
    }
    
    }
    
    int gameover(){
    for (indice_mappai=0;indice_mappai<larghezza_colonne;indice_mappai++)
    if (mappa[indice_mappai][0])
        return 1;
        return 0;
        }
    
    void nuovo_pezzo(){
    for (indice_pezzoi=0; indice_pezzoi<dimpezzo;indice_pezzoi++){
        for (indice_pezzoj=0; indice_pezzoj<dimpezzo;indice_pezzoj++)
        pezzo.array[indice_pezzoi][indice_pezzoj] = pezzo2[indice_pezzoi][indice_pezzoj];
        }
    }
    void ruota_pezzo(){
    int i,j;
    int pezzo1[dimpezzo][dimpezzo];
    pezzo1[0][0]=pezzo.array[2][0];
    pezzo1[0][1]=pezzo.array[1][0];
    pezzo1[0][2]=pezzo.array[0][0];
    pezzo1[1][0]=pezzo.array[2][1];
    pezzo1[1][1]=pezzo.array[1][1];
    pezzo1[1][2]=pezzo.array[0][1];
    pezzo1[2][0]=pezzo.array[2][2];
    pezzo1[2][1]=pezzo.array[1][2];
    pezzo1[2][2]=pezzo.array[0][2];
        for (i=0;i<dimpezzo;i++){
            for (j=0;j<dimpezzo;j++)
    
            pezzo.array[i][j]=pezzo1[i][j];}
    }
    void cancellariga(){
    for (indice_mappaj=pezzo.y; indice_mappaj>0; indice_mappaj--) {
        for (indice_mappai=0; indice_mappai<larghezza_colonne;indice_mappai++)
            if (mappa[indice_mappai][indice_mappaj]!=0)
                mappa[indice_mappai][indice_mappaj]=mappa[indice_mappai][indice_mappaj-1];
                }
    }
    
    int movimentopossibile(){
        int jpezzo=pezzo.y,ipezzo=pezzo.x,imappa,jmappa;
        for ( ipezzo=pezzo.y, imappa=0; ipezzo<pezzo.y+dimpezzo; ipezzo++, imappa++){
            for(jpezzo=pezzo.x, jmappa=0; jpezzo<pezzo.x+dimpezzo; jpezzo++, jmappa++)
                if (jpezzo>larghezza_colonne-1 ||jpezzo<0 ||jpezzo>altezza_righe-1){
                    return 0;}
                    else{
                    return 1;
    }
    }
    }
    void controllariga(){
    for(indice_mappai=0;indice_mappai<larghezza_colonne;indice_mappai++){
    
        if(mappa[indice_mappai][indice_mappaj]!=0){
        if(indice_mappai==larghezza_colonne)
        cancellariga(indice_mappaj);
    }
    }
    }
    void agg(){ //modificato agg
    int imappa,jmappa,ipezzo,jpezzo;
    for(ipezzo=pezzo.x;ipezzo<pezzo.x+dimpezzo;ipezzo++){
        for(jpezzo=pezzo.y;jpezzo<pezzo.y+dimpezzo;jpezzo++)
        mappa[ipezzo][jpezzo]=pezzo.array[ipezzo-pezzo.x][jpezzo-pezzo.y];
    }
    
    }
    
    void stampa_mappa() //stampa la mappa
    {
        int i,j;
        for(i=0;i<altezza_righe;i++)
        {
            
            for(j=0;j<larghezza_colonne ;j++)
                 printf("%d ",mappa[i][j]);
                 
            printf("\n");      
            
            
            
            }
        
        
        
        }
    void azzera_mappa()// porta gli elementi di mappa a 0
    {
        
        int i,j;
        for(i=0;i<altezza_righe;i++)
        {
            
            for(j=0;j<larghezza_colonne ;j++)
                mappa[i][j]=0;
                 
                  
            
            
            
            }
        
        
        
        }
    Vedi oregon , questi sono problemi di visual studio
    devc++ compila lo stesso
    Tecnologia

  4. #14
    scusa ma devo afforza passargli qualkosa, se no come faccio ad attivarla. prima se gli passavo solo x e y si attivava e il prog rispondeva a dovere, xke adesso fa i capricci?

  5. #15
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    è INUTILE , che passi qualcosa alla funzione agg()
    non vengono usati dalla funzione
    hai dei dati globali , sono accessibili sia nel main che nelle funzioni ,direttamente senza
    che gli passi niente
    Tecnologia

  6. #16
    ora mi è tutto kiaro finalmente. grazie a te oregon ke sei stato il primo a dare la risposta esatta e un ola a torn ke mi ha fatto pure le correzioni. (raga nn per qualkosa ma comincio a volervi bene )

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Scusa Francesco, ma devi approfondire i concetti basilari del C prima di programmare.

    Se non sai cosa siano le variabili globali, quelle locali, i parametri di funzione, difficilmente potrai scrivere programmi senza assistenza continua.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #18
    bhe si purtroppo hai ragione, erano cose ke avrei dovuto sapere già prima di iniziare a fare codice. ho un brutto vizio quello di partire in quarta senza prepararmi prima a dovere una base. il problema e ke mi annoio terribilemente a leggere il manuale trovo piu divertente iniziare a scrivere codice e scervellarmi a risolvere il problema. cmq grazie ankora

  9. #19
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da francesco1985
    bhe si purtroppo hai ragione, erano cose ke avrei dovuto sapere già prima di iniziare a fare codice. ho un brutto vizio quello di partire in quarta senza prepararmi prima a dovere una base. il problema e ke mi annoio terribilemente a leggere il manuale trovo piu divertente iniziare a scrivere codice e scervellarmi a risolvere il problema. cmq grazie ankora
    Forse non te ne sei accorto ma alla fine, tu non ti scervelli e lasci che il problema lo risolva il forum ...

    Così non va bene ... non ci si "annoia" a studiare.

    E' anche nel regolamento di questo forum ... rischi che ti siano chiuse le discussioni ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #20
    ehm vabbe dai nn esagerare, in fondo era una cosa ke avevo scordato nn ke nn sapevo affatto. ci sono tante cose su cui mi sono scervellato nel programma e di sicuro nn le dimentico piu, a volte è utile perde del tempo su un problema semplice, di siuro una volta risolto, per tutto il tempo perso nn lo scorderai piu, e nn farai piu lo stesso errore.

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.