Tetris in C, aiuto rotazione

di il
20 risposte

Tetris in C, aiuto rotazione

Salve, ho notato questo forum molto attivo per quanto riguarda la programmazione.

Volevo chiedervi aiuto relativamente al gioco del Tetris in C

Ho un problema sulla rotazione di un pezzo, praticamente quando l’utente digita il tasto per ruotare, un frammento del pezzo che scende resta bloccato, e l’oggetto non ruota.
Qualcuno sarebbe così gentile da aiutarmi?
Grazie in anticipo.

Questo è il codice:

#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <conio.h>
#include <dos.h>
#include <time.h>

#define RIGA 21
#define COLONNA 10
#define DESTRA 77
#define SINISTRA 75
#define GIU 80
#define SU 72

void GotoXY(int x, int y)
{
    COORD CursorPos = {x, y};
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hConsole, CursorPos);
}

// FUNCTION PER RALLENTARE I MOVIMENTI
void ritardo()
{
    long double i;
    for(i=0;i<=(30000000);i++);
}

int i, j; // CONTATORI
int sposta, random; // VARIABILI BOOLEANE
int punti = 0; // VARIABILE PERASSEGNAZIONE DEI PUNTI
int contatore_pezzi = 1; // VARIABILE PER CONTARE IL NUMERO DI OGGETTI CREATI
char griglia[21][10]; // DICHIARAZIONE ARRAY DI CHAR
char pezzo[2][2] = {{'X', 'X'}, // DICHIARAZIONE CUBO
                    {'X', 'X'}};
char linea[3][1] = {{'X'},
                    {'X'},
                    {'X'}}; // DICHIARAZIONE LINEA
char linea_or[1][3] = { {'X'},{'X'},{'X'}};

void caricaArray() // INIZIALIZZA L'ARRAY VUOTO CON CICLI FOR INNESTATI
{
    for (i = 0; i < RIGA; i++)
    {
        for (j = 0; j < COLONNA; j++)
        {
            griglia[i][j] = ' ';
        }
    }
}

// PROTOTIPI FUCTION
void movimenti();
void assegnaPezzo();
void eliminaRiga();
void stampaBordi();

int main()
{
    printf("\n                                 BENVENUTI IN\n\n");
    printf(" /////////////////// XXXXX  XXXXX  XXXXX  XXXX    X  XXXXX ///////////////////\n");
    printf(" ///////////////////   X    X        X    X   X   X  X     ///////////////////\n");
    printf(" ///////////////////   X    XXXX     X    XXXX    X  XXXXX ///////////////////\n");
    printf(" ///////////////////   X    X        X    X  X    X      X ///////////////////\n");
    printf(" ///////////////////   X    XXXXX    X    X   X   X  XXXXX ///////////////////\n\n");
    printf("ISTRUZIONI:\n - Per muoverti all'interno della griglia premi le frecce direzionali (SINISTRA/DESTRA)\n");
    printf(" - Per ruotare le forme premi la freccia direzionale SU\n");
    printf(" - Per ogni riga completata verra' totalizzato un punto.\n\N");
    printf("Per iniziare a giocare premi un tasto.\n");
    system("PAUSE");
    caricaArray();
    movimenti();
    printf("\n\n");
    return 0;
}

void visualizzaArray() // VISUALIZZA L'ARRAY ALLO STATO ATTUALE
{
    printf("\n");
    for (i = 0; i < RIGA; i++)
    {
        printf(" "); //Spazio per visualizzare tutti i punti all'interno del bordo
        for (j = 0; j < COLONNA; j++)
        {
            printf("%c ", griglia[i][j]);
        }
        printf("\n");
    }
        stampaBordi();
}

void movimenti() // GESTISCE TUTTI I POSSIBILI MOVIMENTI DELLA FORMA
{
    do {
        eliminaRiga(); // Ad ogni ciclo verifica la presenza di righe piene
        int r = 0;
        int c = 4;
        srand(time(NULL)); // Random
        random = rand() % 2;
        assegnaPezzo();
        visualizzaArray();

        do {
            GotoXY(r,c); // Inizia a scorrere verso il basso
            r++;
            system("cls");
            if (random == 0) { // Se l'oggetto creato e' il cubo
                griglia[r-1][c] = ' '; // Libera le posizioni precedenti
                griglia[r-1][c+1] = ' ';
                griglia[r][c] = pezzo[0][0]; // Riassegna l'oggetto nella nuova posizione
                griglia[r][c+1] = pezzo[0][1];
                griglia[r+1][c] = pezzo[1][0];
                griglia[r+1][c+1] = pezzo[1][1];
            }
            if (random == 1) { // Se l'oggetto creato e' la linea
                    if ( !kbhit() ) // Se non si premono tasti
                        {
                            griglia[r-1][c] = ' '; // Libera le posizioni precedenti
                            griglia[r][c] = linea[0][0]; // Riassegna l'oggetto nella nuova posizione
                            griglia[r+1][c] = linea [1][0];
                            griglia[r+2][c] = linea [2][0];
                        }
            }
            visualizzaArray();
            ritardo();
            if ( kbhit() ) // Se durante lo scroll verticale si preme un tasto
                {
                    sposta = getch(); // Prende in input un tasto e lo assegna alla variabile sposta
                    if (sposta==SU) // E se e' la freccia SU
                        {
                            griglia[r-1][c] = ' ';
                            griglia[r][c-1] = linea_or[0][0];
                            griglia[r][c] = linea_or[1][0];
                            griglia[r][c+1] = linea_or[2][0];
                        }

                    if (sposta == DESTRA ) // E se e' la freccia DESTRA
                    {
                        c++; // L'oggetto si sposta a destra
                        system("cls");
                        if (random == 0) {
                            if (c+1>COLONNA-1) { break; } // Se supera il bordo destro
                        griglia[r][c-1] = ' '; // Libera le posizioni precedenti
                        griglia[r+1][c-1] = ' ';
                        }
                        else if (random == 1) {
                        griglia[r-2][c-1] = ' '; // Libera le posizioni precedenti
                        griglia[r-1][c-1] = ' ';
                        griglia[r][c-1] = ' ';
                        griglia[r+1][c-1] = ' ';
                        griglia[r+2][c-1] = ' ';
                        }
                        visualizzaArray(); //visualizza il tutto
                    }
                    if (sposta == SINISTRA ) // E se e' la freccia SINISTRA
                    {
                        c--; // L'oggetto si sposta a sinistra
                        if (c<0) { break; } // Se supera il bordo sinistro
                        system("cls");
                        if (random == 0) {
                        griglia[r][c+2] = ' '; // Libera le posizioni precedenti
                        griglia[r+1][c+2] = ' ';
                        }
                        else if (random == 1) {
                        griglia[r-1][c+2] = ' '; // Libera le posizioni precedenti
                        griglia[r-1][c+1] = ' ';
                        griglia[r][c+1] = ' ';
                        griglia[r+1][c+1] = ' ';
                        griglia[r+2][c+1] = ' ';
                        }
                        visualizzaArray();
                    }
                }
            if (random == 0) {
            if (griglia[r+2][c] == 'X' || griglia[r+2][c+1] == 'X') // Se il pezzo tocca un altro pezzo inferiormente
            {
                if (griglia[0][c] == 'X' || griglia[1][c] == 'X') // Se lo spazio superiore e' troppo piccolo
                {
                    system("cls");
                    printf("HAI PERSO!\nPremi ESC per uscire.");
                    break;
                }
                contatore_pezzi++;
                return movimenti(); //Allora attiva la ricorsivita'
            }
            }
            if (random == 1) {
                if (griglia[r+3][c] == 'X') {
                    if (griglia[0][c] == 'X' || griglia[1][c] == 'X')
                    {
                        system("cls");
                        printf("HAI PERSO!\nPremi ESC per uscire.");
                        break;
                    }
                    contatore_pezzi++;
                    return movimenti();
                }
            }
            if (random == 0) {
            if (r+1==20) { // Se tocca il borso inferiore crea un altro oggetto
                contatore_pezzi++;
                return movimenti(); }
            }
            else if (random == 1) {
            if (r+2==20) { // Se tocca il borso inferiore crea un altro oggetto
                contatore_pezzi++;
                return movimenti(); }
            }
        } while ( sposta != 27 );
    } while ( getch() != 27 );
}

void stampaBordi() // STAMPA LA CORNICE DEL CAMPO DI GIOCO
{
    for(i=1;i<=19;i++)
    {
        GotoXY(i,22); putch('-');
        GotoXY(i,0); putch('-');
    }
        printf("   PUNTI:%d - PEZZO No %d", punti, contatore_pezzi);
    for (j=1;j<22; j++) {
        GotoXY(0,j); putch('|');
        GotoXY(20,j); putch('|');
    }
}

void assegnaPezzo()
{
    int i1 = 0;
    int j1 = 4;
    if (random==0) {
    griglia[i1][j1] = pezzo[0][0]; // Assegna il pezzo nella posizione iniziale
    griglia[i1][j1+1] = pezzo[0][1];
    griglia[i1+1][j1] = pezzo[1][0];
    griglia[i1+1][j1+1] = pezzo[1][1];
    }
    if (random==1) {
        griglia[i1][j1] = linea[0][0];
        griglia[i1+1][j1] = linea [1][0];
        griglia[i1+2][j1] = linea [2][0];
    }
}

void eliminaRiga() // ELIMINA UNA O PIU' RIGHE, SE PIENE
{
    int k;
    int cont_riga;
    int colonna;
    char aus[COLONNA];
    for (cont_riga=0; cont_riga<=20; cont_riga++)
    {
        if (griglia[cont_riga][0] == 'X' && griglia[cont_riga][1] == 'X' && griglia[cont_riga][2] == 'X' && griglia[cont_riga][3] == 'X' && griglia[cont_riga][4] == 'X' && griglia[cont_riga][5] == 'X' && griglia[cont_riga][6] == 'X' && griglia[cont_riga][7] == 'X' && griglia[20][8] == 'X' && griglia[20][9] == 'X')
        {
            for (colonna=0; colonna<10; colonna++) {
                aus[colonna] = griglia[cont_riga-1][colonna];
            }
            for (colonna=0; colonna<10; colonna++) {
                griglia[cont_riga][colonna] = aus[colonna];
            }
            for (colonna=0; colonna<10; colonna++) {
                griglia[cont_riga-1][colonna] = '.';
            }
            punti++;
            for (k=2; k<11; k++) {
            if (griglia[cont_riga-k][0] == 'X' || griglia[cont_riga-k][1] == 'X' || griglia[cont_riga-k][2] == 'X' || griglia[cont_riga-k][3] == 'X' || griglia[cont_riga-k][4] == 'X' || griglia[cont_riga-k][5] == 'X' || griglia[cont_riga-k][6] == 'X' || griglia[cont_riga-k][7] == 'X' || griglia[cont_riga-k][8] == 'X' || griglia[cont_riga-k][9] == 'X' )
                {
                    for (colonna=0; colonna<10; colonna++) {
                    aus[colonna] = griglia[cont_riga-k][colonna];
                    }
                    for (colonna=0; colonna<10; colonna++) {
                    griglia[cont_riga-k+1][colonna] = aus[colonna];
                    }
                    for (colonna=0; colonna<10; colonna++) {
                    griglia[cont_riga-k][colonna] = '.';
                    }
                }
            }
            system("cls");
            visualizzaArray();
        }
    }
}
[/quote]

20 Risposte

  • Re: Tetris in C, aiuto rotazione

    Usa i tag CODE, non QUOTE...
  • Re: Tetris in C, aiuto rotazione

    Corretto, scusami

    Qualcuno sa aiutarmi?
  • Re: Tetris in C, aiuto rotazione

    Sei cosciente del fatto che il codice che hai postato non compila?
  • Re: Tetris in C, aiuto rotazione

    19luca97 ha scritto:


    Salve, ho notato questo forum molto attivo per quanto riguarda la programmazione.

    Volevo chiedervi aiuto relativamente al gioco del Tetris in C

    Ho un problema sulla rotazione di un pezzo, praticamente quando l’utente digita il tasto per ruotare, un frammento del pezzo che scende resta bloccato, e l’oggetto non ruota.
    Qualcuno sarebbe così gentile da aiutarmi?
    Grazie in anticipo.

    Questo è il codice:
    
    #include <stdio.h>
    #include <windows.h>
    #include <string.h>
    #include <conio.h>
    #include <dos.h>
    #include <time.h>
    
    #define RIGA 21
    #define COLONNA 10
    #define DESTRA 77
    #define SINISTRA 75
    #define GIU 80
    #define SU 72
    
    void GotoXY(int x, int y)
    {
        COORD CursorPos = {x, y};
        HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleCursorPosition(hConsole, CursorPos);
    }
    
    // FUNCTION PER RALLENTARE I MOVIMENTI
    void ritardo()
    {
        long double i;
        for(i=0;i<=(30000000);i++);
    }
    
    int i, j; // CONTATORI
    int sposta, random; // VARIABILI BOOLEANE
    int punti = 0; // VARIABILE PERASSEGNAZIONE DEI PUNTI
    int contatore_pezzi = 1; // VARIABILE PER CONTARE IL NUMERO DI OGGETTI CREATI
    char griglia[21][10]; // DICHIARAZIONE ARRAY DI CHAR
    char pezzo[2][2] = {{'X', 'X'}, // DICHIARAZIONE CUBO
                        {'X', 'X'}};
    char linea[3][1] = {{'X'},
                        {'X'},
                        {'X'}}; // DICHIARAZIONE LINEA
    char linea_or[1][3] = { {'X'},{'X'},{'X'}};
    
    void caricaArray() // INIZIALIZZA L'ARRAY VUOTO CON CICLI FOR INNESTATI
    {
        for (i = 0; i < RIGA; i++)
        {
            for (j = 0; j < COLONNA; j++)
            {
                griglia[i][j] = ' ';
            }
        }
    }
    
    // PROTOTIPI FUCTION
    void movimenti();
    void assegnaPezzo();
    void eliminaRiga();
    void stampaBordi();
    
    int main()
    {
        printf("\n                                 BENVENUTI IN\n\n");
        printf(" /////////////////// XXXXX  XXXXX  XXXXX  XXXX    X  XXXXX ///////////////////\n");
        printf(" ///////////////////   X    X        X    X   X   X  X     ///////////////////\n");
        printf(" ///////////////////   X    XXXX     X    XXXX    X  XXXXX ///////////////////\n");
        printf(" ///////////////////   X    X        X    X  X    X      X ///////////////////\n");
        printf(" ///////////////////   X    XXXXX    X    X   X   X  XXXXX ///////////////////\n\n");
        printf("ISTRUZIONI:\n - Per muoverti all'interno della griglia premi le frecce direzionali (SINISTRA/DESTRA)\n");
        printf(" - Per ruotare le forme premi la freccia direzionale SU\n");
        printf(" - Per ogni riga completata verra' totalizzato un punto.\n\N");
        printf("Per iniziare a giocare premi un tasto.\n");
        system("PAUSE");
        caricaArray();
        movimenti();
        printf("\n\n");
        return 0;
    }
    
    void visualizzaArray() // VISUALIZZA L'ARRAY ALLO STATO ATTUALE
    {
        printf("\n");
        for (i = 0; i < RIGA; i++)
        {
            printf(" "); //Spazio per visualizzare tutti i punti all'interno del bordo
            for (j = 0; j < COLONNA; j++)
            {
                printf("%c ", griglia[i][j]);
            }
            printf("\n");
        }
            stampaBordi();
    }
    
    void movimenti() // GESTISCE TUTTI I POSSIBILI MOVIMENTI DELLA FORMA
    {
        do {
            eliminaRiga(); // Ad ogni ciclo verifica la presenza di righe piene
            int r = 0;
            int c = 4;
            srand(time(NULL)); // Random
            random = rand() % 2;
            assegnaPezzo();
            visualizzaArray();
    
            do {
                GotoXY(r,c); // Inizia a scorrere verso il basso
                r++;
                system("cls");
                if (random == 0) { // Se l'oggetto creato e' il cubo
                    griglia[r-1][c] = ' '; // Libera le posizioni precedenti
                    griglia[r-1][c+1] = ' ';
                    griglia[r][c] = pezzo[0][0]; // Riassegna l'oggetto nella nuova posizione
                    griglia[r][c+1] = pezzo[0][1];
                    griglia[r+1][c] = pezzo[1][0];
                    griglia[r+1][c+1] = pezzo[1][1];
                }
                if (random == 1) { // Se l'oggetto creato e' la linea
                        if ( !kbhit() ) // Se non si premono tasti
                            {
                                griglia[r-1][c] = ' '; // Libera le posizioni precedenti
                                griglia[r][c] = linea[0][0]; // Riassegna l'oggetto nella nuova posizione
                                griglia[r+1][c] = linea [1][0];
                                griglia[r+2][c] = linea [2][0];
                            }
                }
                visualizzaArray();
                ritardo();
                if ( kbhit() ) // Se durante lo scroll verticale si preme un tasto
                    {
                        sposta = getch(); // Prende in input un tasto e lo assegna alla variabile sposta
                        if (sposta==SU) // E se e' la freccia SU
                            {
                                griglia[r-1][c] = ' ';
                                griglia[r][c-1] = linea_or[0][0];
                                griglia[r][c] = linea_or[1][0];
                                griglia[r][c+1] = linea_or[2][0];
                            }
    
                        if (sposta == DESTRA ) // E se e' la freccia DESTRA
                        {
                            c++; // L'oggetto si sposta a destra
                            system("cls");
                            if (random == 0) {
                                if (c+1>COLONNA-1) { break; } // Se supera il bordo destro
                            griglia[r][c-1] = ' '; // Libera le posizioni precedenti
                            griglia[r+1][c-1] = ' ';
                            }
                            else if (random == 1) {
                            griglia[r-2][c-1] = ' '; // Libera le posizioni precedenti
                            griglia[r-1][c-1] = ' ';
                            griglia[r][c-1] = ' ';
                            griglia[r+1][c-1] = ' ';
                            griglia[r+2][c-1] = ' ';
                            }
                            visualizzaArray(); //visualizza il tutto
                        }
                        if (sposta == SINISTRA ) // E se e' la freccia SINISTRA
                        {
                            c--; // L'oggetto si sposta a sinistra
                            if (c<0) { break; } // Se supera il bordo sinistro
                            system("cls");
                            if (random == 0) {
                            griglia[r][c+2] = ' '; // Libera le posizioni precedenti
                            griglia[r+1][c+2] = ' ';
                            }
                            else if (random == 1) {
                            griglia[r-1][c+2] = ' '; // Libera le posizioni precedenti
                            griglia[r-1][c+1] = ' ';
                            griglia[r][c+1] = ' ';
                            griglia[r+1][c+1] = ' ';
                            griglia[r+2][c+1] = ' ';
                            }
                            visualizzaArray();
                        }
                    }
                if (random == 0) {
                if (griglia[r+2][c] == 'X' || griglia[r+2][c+1] == 'X') // Se il pezzo tocca un altro pezzo inferiormente
                {
                    if (griglia[0][c] == 'X' || griglia[1][c] == 'X') // Se lo spazio superiore e' troppo piccolo
                    {
                        system("cls");
                        printf("HAI PERSO!\nPremi ESC per uscire.");
                        break;
                    }
                    contatore_pezzi++;
                    return movimenti(); //Allora attiva la ricorsivita'
                }
                }
                if (random == 1) {
                    if (griglia[r+3][c] == 'X') {
                        if (griglia[0][c] == 'X' || griglia[1][c] == 'X')
                        {
                            system("cls");
                            printf("HAI PERSO!\nPremi ESC per uscire.");
                            break;
                        }
                        contatore_pezzi++;
                        return movimenti();
                    }
                }
                if (random == 0) {
                if (r+1==20) { // Se tocca il borso inferiore crea un altro oggetto
                    contatore_pezzi++;
                    return movimenti(); }
                }
                else if (random == 1) {
                if (r+2==20) { // Se tocca il borso inferiore crea un altro oggetto
                    contatore_pezzi++;
                    return movimenti(); }
                }
            } while ( sposta != 27 );
        } while ( getch() != 27 );
    }
    
    void stampaBordi() // STAMPA LA CORNICE DEL CAMPO DI GIOCO
    {
        for(i=1;i<=19;i++)
        {
            GotoXY(i,22); putch('-');
            GotoXY(i,0); putch('-');
        }
            printf("   PUNTI:%d - PEZZO No %d", punti, contatore_pezzi);
        for (j=1;j<22; j++) {
            GotoXY(0,j); putch('|');
            GotoXY(20,j); putch('|');
        }
    }
    
    void assegnaPezzo()
    {
        int i1 = 0;
        int j1 = 4;
        if (random==0) {
        griglia[i1][j1] = pezzo[0][0]; // Assegna il pezzo nella posizione iniziale
        griglia[i1][j1+1] = pezzo[0][1];
        griglia[i1+1][j1] = pezzo[1][0];
        griglia[i1+1][j1+1] = pezzo[1][1];
        }
        if (random==1) {
            griglia[i1][j1] = linea[0][0];
            griglia[i1+1][j1] = linea [1][0];
            griglia[i1+2][j1] = linea [2][0];
        }
    }
    
    void eliminaRiga() // ELIMINA UNA O PIU' RIGHE, SE PIENE
    {
        int k;
        int cont_riga;
        int colonna;
        char aus[COLONNA];
        for (cont_riga=0; cont_riga<=20; cont_riga++)
        {
            if (griglia[cont_riga][0] == 'X' && griglia[cont_riga][1] == 'X' && griglia[cont_riga][2] == 'X' && griglia[cont_riga][3] == 'X' && griglia[cont_riga][4] == 'X' && griglia[cont_riga][5] == 'X' && griglia[cont_riga][6] == 'X' && griglia[cont_riga][7] == 'X' && griglia[20][8] == 'X' && griglia[20][9] == 'X')
            {
                for (colonna=0; colonna<10; colonna++) {
                    aus[colonna] = griglia[cont_riga-1][colonna];
                }
                for (colonna=0; colonna<10; colonna++) {
                    griglia[cont_riga][colonna] = aus[colonna];
                }
                for (colonna=0; colonna<10; colonna++) {
                    griglia[cont_riga-1][colonna] = '.';
                }
                punti++;
                for (k=2; k<11; k++) {
                if (griglia[cont_riga-k][0] == 'X' || griglia[cont_riga-k][1] == 'X' || griglia[cont_riga-k][2] == 'X' || griglia[cont_riga-k][3] == 'X' || griglia[cont_riga-k][4] == 'X' || griglia[cont_riga-k][5] == 'X' || griglia[cont_riga-k][6] == 'X' || griglia[cont_riga-k][7] == 'X' || griglia[cont_riga-k][8] == 'X' || griglia[cont_riga-k][9] == 'X' )
                    {
                        for (colonna=0; colonna<10; colonna++) {
                        aus[colonna] = griglia[cont_riga-k][colonna];
                        }
                        for (colonna=0; colonna<10; colonna++) {
                        griglia[cont_riga-k+1][colonna] = aus[colonna];
                        }
                        for (colonna=0; colonna<10; colonna++) {
                        griglia[cont_riga-k][colonna] = '.';
                        }
                    }
                }
                system("cls");
                visualizzaArray();
            }
        }
    }
    
  • Re: Tetris in C, aiuto rotazione

    Nippolo ha scritto:


    Sei cosciente del fatto che il codice che hai postato non compila?
    C’era un [/quote] di troppo scusa.
    Ora se lo esegui va
  • Re: Tetris in C, aiuto rotazione

    Cosa stai usando per lavorare su questo progetto ?
    Perche' a me non compilava prima e non compila neanche adesso...
  • Re: Tetris in C, aiuto rotazione

    Utilizzo codeblock e va, linguaggio C, non C++
  • Re: Tetris in C, aiuto rotazione

    E il compilatore qual è? \n\N è un errore con N maiuscola...
  • Re: Tetris in C, aiuto rotazione

    Gnu Gcc compiler

    Ti assicuro che non vi è alcun errore nel code
    Il doppio /n me lo legge regolarmente come
    Doppio a capo

    Ho appena ricompilato ed eseguito, funziona, ma ho il problema della rotazione sempre.
    Se posso caricare immagini tramite un url (se è consentito, vi mostro cosa succede)
  • Re: Tetris in C, aiuto rotazione

    Oltre al comando \N non riconosciuto, a me restituisce alcuni warning relativi al return in funzioni void, e anche qualche problema di inizializzazione nella riga
    char linea_or[1][3] = { {'X'},{'X'},{'X'}};
    Detto questo, appena ho un po' di tempo mi guardo meglio l'impostazione logica del programma e ti faccio sapere.
  • Re: Tetris in C, aiuto rotazione

    Nippolo ha scritto:


    Oltre al comando \N non riconosciuto, a me restituisce alcuni warning relativi al return in funzioni void, e anche qualche problema di inizializzazione nella riga
    char linea_or[1][3] = { {'X'},{'X'},{'X'}};
    Detto questo, appena ho un po' di tempo mi guardo meglio l'impostazione logica del programma e ti faccio sapere.
    Va bene grazie mille, gentilissimo
  • Re: Tetris in C, aiuto rotazione

    Qualche soluzione, sono ancora bloccato e tra una settimana ho la scadenza per la consegna...
  • Re: Tetris in C, aiuto rotazione

    Non fare completo affidamento su un forum per le consegne che ti vengono date dai professori.

    Ti consiglio comunque di contattare altri colleghi di studio (e anche professori) per consigli.
  • Re: Tetris in C, aiuto rotazione

    oregon ha scritto:


    Non fare completo affidamento su un forum per le consegne che ti vengono date dai professori.

    Ti consiglio comunque di contattare altri colleghi di studio (e anche professori) per consigli.
    Ci mancherebbe.
    Ovviamente ci sto continuando a perdere la testa su, i colleghi non mi sanno aiutare perché mediamente hanno ricevuto progetti molto più semplici del mio, anche perché in primis questo tetris presenta librerie che nel corso noi non abbiamo mai visto prima..
Devi accedere o registrarti per scrivere nel forum
20 risposte