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: