0% encontró este documento útil (0 votos)
90 vistas12 páginas

Snake

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1/ 12

#include <iostream>

#include <windows.h>

#include <stdlib.h>

#include <conio.h>

#include <time.h>

using namespace std;

void gotoxy(int x, int y){

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;

for(int i=0 ; i<f ; i++){

gotoxy(i,0);

cout<<t;

gotoxy(i,c);

cout<<t;

for(int i=0 ; i<=c ; i++){

gotoxy(0,i);

cout<<t;

gotoxy(f,i);

cout<<t;

string g4meover[]={" ____ ___"," / ___| __ _ _ __ ___ ___ / _ \\__ _____ _ __


",

"| | _ / _` | '_ ` _ \\ / _ \\ | | \\ \\ / / _ \\ '__|","| |_| | (_| | | | | | | __/ |_| |\\ V / __/ | ",

" \\____|\\__,_|_| |_| |_|\\___|\\___/ \\_/ \\___|_|"};

r=2;

for(int i=0;i<5;i++){

gotoxy(15,r);

r++;

cout<<g4meover[i]<<endl;

}
string g4meover2[]={" _________ _________"," / \\ / \\",

" / /~~~~~\\ \\ / /~~~~~\\ \\"," | | | | | | | |"," | | | | | | | |",

"| | | | | | | | /"," | | | | | | | | //","(X X) \\ \\_____/ / \\


\\_____/ /",

" \\__/ \\ / \\ /"," | ~~~~~~~~~ ~~~~~~~~"," ^"};

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;

for(int i=0 ; i<f ; i++){


gotoxy(i,0);

cout<<t;

gotoxy(i,c);

cout<<t;

for(int i=0 ; i<=c ; i++){

gotoxy(0,i);

cout<<t;

gotoxy(f,i);

cout<<t;

string snkd[]={" ---_ ......._-_--."," (|\\ / / /| \\ \\"," / / .' -=-' `.",

" / / .' )"," _/ / .' _.) /"," / o o _.-' / .'",

" \\ _.-' / .'*|"," \\______.-'// .'.' \\*|"," \\| \\ | // .'.' _ |*|",

" ` \\|// .'.'_ _ _|*|"," . .// .'.' | _ _ \\*|"," \\`-|\\_/ / \\ _ _ \\*\\",

" \\ _ _ \\*"," \\ _ _ \\ "," \\_"};

r=2;

for(int i=0;i<14;i++){

gotoxy(20,r);

r++;

cout<<snkd[i]<<endl;

string snkl[]={" __ "," _________ ____ _/ /_____"," / ___/ __ \\/ __ `/ //_/ _


\\",

" (__ ) / / / /_/ / ,< / __/","/____/_/ /_/\\__,_/_/|_|\\___/"};

for(int i=0;i<5;i++){

gotoxy(22,r);
r++;

cout<<snkl[i]<<endl;

gotoxy(23,23);

cout<<"Precione ENTER para empezar";

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;

for(int i=1 ; i<f ; i++){


gotoxy(i,1);

cout<<t;

gotoxy(i,c);

cout<<t;

for(int i=1 ; i<=c ; i++){

gotoxy(1,i);

cout<<t;

gotoxy(f,i);

cout<<t;

void Juego::genFruta(){

fruta.x = 2+( rand() % (f-2) );

fruta.y = 2+(rand() % (c-2));

gotoxy(fruta.x,fruta.y);

cout<<fruta.cuerpo;

void Juego::muerte(){

if(snake[0].x==1 || snake[0].x==f || snake[0].y==1 || snake[0].y==c)

gameover=true;

for(int i=1;i<tam && gameover==false;i++){

if(snake[0].x==snake[i].x && snake[0].y==snake[i].y){

gameover=true;
}

void Juego::tecla(){

int i;

char key;

if (!gameover){

if (kbhit()==1){

key=getch();

if((key==72) && snake[0].dy !=1){

snake[0].dx=0;

snake[0].dy=-1;

if((key==80) && snake[0].dy !=-1){

snake[0].dx=0;

snake[0].dy=1;

if((key==75) && snake[0].dx !=1){

snake[0].dx=-1;

snake[0].dy=0;

if((key==77) && snake[0].dx !=-1){

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;

for(i=1;i < tam; i++){

snake[i].x=snake[i-1].x-1;

snake[i].y=snake[i-1].y;

snake[i].cuerpo=184;

for(i=0; i<tam; i++){

gotoxy(snake[i].x,snake[i].y);

cout<<snake[i].cuerpo;

void Juego::cfruta(){

if(snake[0].x==fruta.x && snake[0].y==fruta.y){


genFruta();

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<<" ";

for (i= tam-1; i>0; i--){

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;

for(i= tam-1; i>=0; 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();

También podría gustarte