Problema funzione void in c

di il
4 risposte

Problema funzione void in c

Salve spero che qualcuno riesca ad aiutarmi, questa funziona void mi controlla i possibili spostamenti di un cubo in una griglia, per simulare una partita a tetris, il cubo viene generato al centro in alto nella griglia basandomi su una posizione x=0 y=4.
Il mio problema e che la funziona non mi ritorna i valore di x e y quindi richiamando la funzione nel main con un do-while riesco ad effettuare soltanto 1 movimento siccome i valori di x/y ritornano sempre a quelli iniziali;

avevo pensato a l'utilizzo dei puntatori ma non ci sono riuscito.
spero che qualcuno possa aiutarmi grazie

void movimenti(int mappa[15][10],int x,int y,int random){
int spostamento;
if(random==0){
        Sleep(1000);
        if(!kbhit()){
            mappa[x][y]=0;
            mappa[x][y+1]=0;
            x++;
            mappa[x+1][y]=1;
            mappa[x+1][y+1]=1;
     
        } // se non viene premuto nessun tasto
        if(kbhit()){
            spostamento= getch();
            if(spostamento==DESTRA){
                    mappa[x][y]=0;
                    mappa[x+1][y]=0;
                    mappa[x][y+1]=0;
                    mappa[x+1][y+1]=0;
                    y++;
                    mappa[x][y]=1;
                    mappa[x+1][y]=1;
                    mappa[x+1][y+1]=1;
                    mappa[x][y+1]=1;
          
                    }
            if(spostamento==SINISTRA){
                    mappa[x][y]=0;
                    mappa[x+1][y]=0;
                    mappa[x][y+1]=0;
                    mappa[x+1][y+1]=0;
                    y--;
                    mappa[x][y]=1;
                    mappa[x+1][y]=1;
                    mappa[x][y+1]=1;
                    mappa[x+1][x+1] }
   }
}
}

4 Risposte

  • Re: Problema funzione void in c

    Utilizza i puntatori appunto

    int *x, int *y

    Ovviamente passerai i puntatori nella chiamata e nella funzione terrai conto del fatto che x e y sono puntatori.

    Una domanda prima di tutto .... ma tu li sai usare i puntatori ? Li hai studiati ?
  • Re: Problema funzione void in c

    Si ho studiato gia puntatori ed ho provato ad usarli, ma niente non riesco a far andare la funzione
    dimmi cosa sbaglio
    nel main dovrei fare cosi?
    
    int *x;
    int *y;
    void movimenti(int mappa[15][10],int *x,int *y,int random);
    
    quando invece richiamo la funzione?
    
    movimenti(mappa,random,&x,&y);
  • Re: Problema funzione void in c

    No ... hai studiato ma non hai compreso i puntatori ... rivedi l'argomento, ti servirà ...

    int x;
    int y;

    movimenti(mappa,random,&x,&y);

    Naturalmente x e y devono avere un valore prima di chiamare la funzione.
  • Re: Problema funzione void in c

    Okok vado a farmi uno studio piu approfondito hahah, e spero di risolvere, grazie ;D
Devi accedere o registrarti per scrivere nel forum
4 risposte