Snake
Snake
Snake
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
HANDLE hCon;
hCon=GetStdHandle(STD_OUTPUT_HANDLE);
COORD dwPos;
dwPos.X=x;
dwPos.Y=y;
SetConsoleCursorPosition(hCon,dwPos);
class Snake{
public:
int x,y;
int dx,dy;
char cuerpo;
};
class Fruta{
public:
int x,y;
char cuerpo=254;
};
class Juego{
public:
void main();
private:
int score,nivel,velocidad;
Snake snake[100];
Fruta fruta;
int tam=4;
int c=21,f=64;
bool gameover=false;
void tablero();
//void inicio();
void genFruta();
void genSnake();
void loop();
void tecla();
void actualizar();
void imprimir();
void cfruta();
void muerte();
void puntos();
//void menu();
void portada();
void muerte2();
};
void Juego::muerte2(){
system("cls");
int c=24,f=79,r;
char key;
char t=178;
gotoxy(i,0);
cout<<t;
gotoxy(i,c);
cout<<t;
gotoxy(0,i);
cout<<t;
gotoxy(f,i);
cout<<t;
"| | _ / _` | '_ ` _ \\ / _ \\ | | \\ \\ / / _ \\ '__|","| |_| | (_| | | | | | | __/ |_| |\\ V / __/ | ",
r=2;
for(int i=0;i<5;i++){
gotoxy(15,r);
r++;
cout<<g4meover[i]<<endl;
}
string g4meover2[]={" _________ _________"," / \\ / \\",
for(int i=0;i<11;i++){
gotoxy(20,r);
cout<<g4meover2[i]<<endl;
r++;
gotoxy(33,r);
cout<<"Score: "<<score;
r++;
gotoxy(33,r);
cout<<"Level: "<<nivel;
gotoxy(8,23);
cout<<"Presione ESC para salir o cualquier otra tecla para seguir jugando";
key=getch();
if(key==27)
exit(1);
void Juego::portada(){
system("cls");
int c=24,f=79,r;
char t=178;
cout<<t;
gotoxy(i,c);
cout<<t;
gotoxy(0,i);
cout<<t;
gotoxy(f,i);
cout<<t;
r=2;
for(int i=0;i<14;i++){
gotoxy(20,r);
r++;
cout<<snkd[i]<<endl;
for(int i=0;i<5;i++){
gotoxy(22,r);
r++;
cout<<snkl[i]<<endl;
gotoxy(23,23);
system("pause>dsdsd");
void Juego::puntos(){
gotoxy(f+2,2);
cout<<"Score: "<<(score-1)*10;
gotoxy(f+2,4);
cout<<"Level: "<<nivel;
gotoxy(f+2,6);
cout<<"Length: "<<tam;
cout<<"Derecha ->"<<endl;
gotoxy(f+2,9);
cout<<"izquierda <-"<<endl;
gotoxy(f+2,10);
cout<<"Abajo "<<endl;
gotoxy(f+2,11);
cout<<"Arriba "<<endl;
void Juego::tablero(){
char t=178;
cout<<t;
gotoxy(i,c);
cout<<t;
gotoxy(1,i);
cout<<t;
gotoxy(f,i);
cout<<t;
void Juego::genFruta(){
gotoxy(fruta.x,fruta.y);
cout<<fruta.cuerpo;
void Juego::muerte(){
gameover=true;
gameover=true;
}
void Juego::tecla(){
int i;
char key;
if (!gameover){
if (kbhit()==1){
key=getch();
snake[0].dx=0;
snake[0].dy=-1;
snake[0].dx=0;
snake[0].dy=1;
snake[0].dx=-1;
snake[0].dy=0;
snake[0].dx=1;
snake[0].dy=0;
}
void Juego::genSnake(){
int i;
snake[0].x=30;
snake[0].y=10;
snake[0].dx=1;
snake[0].dy=0;
snake[0].cuerpo=157;
snake[i].x=snake[i-1].x-1;
snake[i].y=snake[i-1].y;
snake[i].cuerpo=184;
gotoxy(snake[i].x,snake[i].y);
cout<<snake[i].cuerpo;
void Juego::cfruta(){
tam+=1;
snake[tam-1].cuerpo=184;
score+=1;
if(tam%10==0){
nivel++;
velocidad-=20;
void Juego::actualizar(){
int i;
gotoxy(snake[tam-1].x,snake[tam-1].y);
cout<<" ";
snake[i].x=snake[i-1].x;
snake[i].y=snake[i-1].y;
snake[0].x += snake[0].dx;
snake[0].y += snake[0].dy;
void Juego::imprimir(){
int i;
gotoxy(snake[i].x,snake[i].y);
cout<<snake[i].cuerpo;
void Juego::loop(){
while(!gameover){
cfruta();
puntos();
actualizar();
imprimir();
tecla();
tecla();
tecla();
muerte();
Sleep(velocidad);
void Juego::main(){
system("color 0a");
gameover=false;
portada();
system("cls");
score=1;
velocidad=110;
tam=4;
nivel=1;
tablero();
srand(time(NULL));
genSnake();
genFruta();
loop();
muerte2();
main();
int main(){
Juego j;
j.main();