Mi serve aiuto con "Snake".

Stato
Chiusa ad ulteriori risposte.

NomeRandom

Nuovo Utente
11 Feb 2017
1
0
1
24
Mi servono consigli sulla creazione della coda di Snake
Ciao a tutti.
Attraverso il seguente codice sorgente ho creato un gioco simile a Snake.

Codice:
#include <windows.h>
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
    int x, y;
    signed int i, j;
    int a;
    int countate=0;
    int melay, melox;
    int punti=0;
    enum direzione {LEFT, RIGHT, UP, DOWN};
   direzione dir;
 
   melox=6;melay=10;
  
    for(a=0;a>=a;a++){system("cls");
  
    if(a<1){
        (i=15)&&(j=8);
    }
  
    for(y=0;y<17;y++){
      
        cout<<"|";

      for(x=0;x<31;x++){
        
          if(melox==x&&melay==y)cout<<"$$";
        
           else if(x==i&&y==j)cout<<"[]";
        
              else if(y!=0&&y!=16)cout<<"  ";
              
                 else if(x<31)cout<<"--";
              
          if(x==30)cout<<"|";
        
            if(i==melox&&j==melay){
                  punti=punti+10;
                 countate=countate+1; //se lo tolgo "[]" questo  si muove verso sinistra...
                  melox=rand()%28;
                  melay=rand()%15;
                }
  
       if(i==-1||i==31){
           system("cls");
           cout<<"Hai totalizzato "<<punti<<" punti."<<endl;
           system("PAUSE");
           return 0;
        }
      
        if(j==-1||j==17){
           system("cls");
           cout<<"Hai totalizzato "<<punti<<" punti."<<endl;
           system("PAUSE");
           return 0;                   
       }
              
   }
        cout<<endl;
   }
 
   cout<<"punti: "<<punti<<endl;
 
   if (_kbhit())
    {
        switch (_getch())
        {
        case 'a':
            dir = LEFT;
            break;
        case 'd':
            dir = RIGHT;
            break;
        case 'w':
            dir = UP;
            break;
        case 's':
            dir = DOWN;
            break;
        }
    }
     switch (dir)
    {
    case LEFT: 
        i--;
        break;
    case RIGHT: 
        i++;
        break;
    case UP:
        j--;
        break;
    case DOWN:
        j++;
        break;
    default:
        break;
    }
     Sleep(90);
}
}

Ho scritto simile perchè, come potrete notare, non ho implementato la coda di Snake.
Nonostante le numerose prove non sono riuscito a completare il tutto, quindi ho deciso di registrarmi in questo forum per poter ottenere qualche aiuto da parte di chi la sa più lunga di me sulla programmazione.
Anche consigli sul funzionamento logico della coda sono ben accetti.
 
Ultima modifica:
Ciao!
Ho implementato snake in C++ qualche mese fa e l'ho caricato su GitHub -> https://github.com/NoNameoN-A/Snake.git

Te lo consiglio perché è tutto commentato ed è perfettamente funzionante.
Ho inserito la possibilità di usare l'effetto Pacman.
L'unico problema che persiste è che quando tu hai una situazione del genere
@@@@@> F
se provi ad andare verso sinistra teoricamente non dovresti far nulla ma nel mio codice muore... comunque provalo magari trovi roba utile al tuo progetto.
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili