Gioco 2048

di il
9 risposte

Gioco 2048

Salve a tutti oggi ho iniziato a scrivere il gioco di 2048 per console in c++ ma trovo difficoltà nella moltiplicazione dei numeri ugiali quando si incontrano. Il movimento funziona così: un array contiene 16 numeri, di cui tutti 0 tranne due che valgono 2 in posizioni randomizzate. Poi la griglia viene stampata con il numero 0 dell'array in alto a sinistra fino al 15 in basso a destra. Il problema sta nel movimento: sono riuscito a far muovere tutte le caselle che si possono muovere (solo verso destra per ora) ma quando si incontrano due uguali quasi sempre non si sommano. Come potrei fare?
Per ora non ho il codice sotto mano ma posso dirvi come funziona: per il movimento a destra parte dalla casella in basso a destra e arriva fino a quella in alto a sinistra, e per ognuna controlla se ci sono caselle vuote (valore 0) a destra. Si ferma se ne trova una diversa da 0 ma per ora non fa niente. Successivamente vede se la casella a destra ce n'è una uguale, e quindi se c'è, le somma, poi cancella (rende 0) la posizione dell'array da cui viene la casella sommata. Solo che funziona meno di un quarto delle volte

9 Risposte

  • Re: Gioco 2048

    A parte il titolo del thread, non ho capito quasi nulla del problema.

    In un forum si presenta del codice, si indica un errore o un malfunzionamento e quindi si ottiene un aiuto.

    Così non otterrai nessun suggerimento dato che il problema non è chiaro, il codice non c'è, la questione è fumosa.
  • Re: Gioco 2048

    Il problema è che quando due numeri uguali si incontrano, invece di sommarsi non succede nulla. Ho cercato di spiegare al meglio il funzionamento ma non ho il codice ora, come ho scritto nel primo messaggio
    Non pretendo aiuto immediato ovviamente
  • Re: Gioco 2048

    ANDPRI ha scritto:


    Il problema è che quando due numeri uguali si incontrano, invece di sommarsi non succede nulla.
    Ma pensi che questa frase sia chiara? Non lo so ... boh
    Non pretendo aiuto immediato ovviamente
    Ma allora chiedi aiuto QUANDO hai il codice. Così perdi solo tempo e fai perdere solo tempo a chi ti risponde.
  • Re: Gioco 2048

    oregon ha scritto:


    ANDPRI ha scritto:


    Il problema è che quando due numeri uguali si incontrano, invece di sommarsi non succede nulla.
    Ma pensi che questa frase sia chiara? Non lo so ... boh
    Non pretendo aiuto immediato ovviamente
    Ma allora chiedi aiuto QUANDO hai il codice. Così perdi solo tempo e fai perdere solo tempo a chi ti risponde.
    Allora non rispondermi se non vuoi perdere tempo
  • Re: Gioco 2048

    Ma rispondere a cosa? E' questo il problema.
  • Re: Gioco 2048

    
    Void muovi(int direzione)
    {
      Int i,r;
      If(direzione==destra)
      {
        For(i=dimensioni;i>=0;i--)
          If(i%4!=3&&g[i]!=0&&g[i+1]==0)
          {
            R=1;
            While(g[r+1]==0&&r%4!=3)
              R++;
            if(g[r+1]==g[i])
            {
             g[r+1]+=g[r+1];
             G[i]=0;
            }
            Else
            {
              G[r]=g[i];
              G[i]=0;
            }
          }
          Randomizza_nuovo_numero();
      }
    }
    
    Ecco il codice,scritto dal cellulare visto che non posso usare il computer. Scusate per il ritardo (e le maiuscole)
    Sappiate che griglia sarebbe l'array di 16 elementi, e dimensioni vale 16
    (Corretto l'asterisco alla 14esima riga che è diventato un più, questa dovrebbe essere la versione che ho ora)
  • Re: Gioco 2048

    E quindi? Nel codice che hai mostrato cosa non funziona o non va?

    Come lo usi? Cosa dovrebbe fare e cosa non fa?

    C'è un main? Come si prova?
  • Re: Gioco 2048

    oregon ha scritto:


    E quindi? Nel codice che hai mostrato cosa non funziona o non va?
    Non ti è passato per la testa che se sapessi cosa non va, l'avrei risolto? No?
  • Re: Gioco 2048

    Mi è passato per la testa che sei tu che dovresti dire cosa non va commentando il codice, i SINTOMI, non il PROBLEMA.

    E RIPETO, un main per provare il codice, dove sta?
Devi accedere o registrarti per scrivere nel forum
9 risposte