C ++ Snake Game (¡Simple!)

el juego de la serpiente es muy popular, aquí hay uno muy simple escrito en C ++ usando Visual Studio

el código tiene solo 150 líneas y se puede modificar de varias maneras

¡Disfrutar!

//////////////////////////////////////////////////// //

¿Quieres apoyar mis videos?

Puede buscar y comprar materiales en mi tienda Amazon con el mismo precio. De esta manera obtengo una pequeña comisión:

C ++ Cómo programar (10ª edición)

Comenzando C ++ a través de la programación del juego

Comenzando con Visual C # (4a edición)

//////////////////////////////////////////////////// //

Paso 1: Míralo en Youtube ...

Paso 2: codificación ...

#incluir

#incluir

usando el espacio de nombres estándar;

bool gameover;

const int ancho = 20;

const int altura = 17;

int x, y, fruitX, fruitY, score;

int tailX [100], tailY [100]; // coordenadas de serpiente

int nTail;

enum eDirecton {STOP = 0, LEFT, RIGHT, UP, DOWN}; // Control S

eDirecton dir;

Configuración nula () {
gameover = falso;

dir = PARAR;

x = ancho / 2;

y = altura / 2;

fruitX = rand ()% ancho; // muestra fruta en un lugar aleatorio

fruitY = rand ()% altura; puntuación = 0;

}

sorteo vacío () {
sistema ("cls");

para (int i = 0; i <ancho + 2; i ++)

cout << "#";

cout << endl;

para (int i = 0; i <altura; i ++) {

para (int j = 0; j <ancho; j ++) {

si (j == 0)

cout << "#"; // paredes

si (i == y && j == x)

cout << "*"; // cuento de serpiente

más si (i == fruitY && j == fruitX)

cout << "%"; // cámbialo para cambiar la fruta

más {

bool print = falso;

para (int k = 0; k <nTail; k ++) {

if (tailX [k] == j && tailY [k] == i) {

cout << "*"; print = verdadero;

}

}

if (! print) cout << "";

}

si (j == ancho -1)

cout << "#";

}

cout << endl;

}

para (int i = 0; i <ancho + 2; i ++)

cout << "#";

cout << endl;

cout << "Puntuación:" << puntuación << endl;

}

Entrada nula ()
{

if (_kbhit ()) {

conmutador (_getch ()) {

caso 'a':

dir = IZQUIERDA;

descanso;

caso 'd':

dir = DERECHA;

descanso;

caso 'w':

dir = ARRIBA;

descanso;

casos':

dir = ABAJO;

descanso;

caso 'x':

gameover = verdadero;

descanso;

}

}

}

algoritmo vacío ()
{

int prevX = tailX [0];

int prevY = tailY [0];

int prev2X, prev2Y;

tailX [0] = x;

tailY [0] = y;

para (int i = 1; i <nTail; i ++) {

prev2X = tailX [i];

prev2Y = tailY [i];

tailX [i] = anteriorX;

tailY [i] = anterior;

prevX = prev2X;

prevY = prev2Y;

}

interruptor (dir) {

caso IZQUIERDO:

X--;

descanso;

caso DERECHO:

x ++;

descanso;

caso arriba:

y--;

descanso;

caso ABAJO:

y ++;

descanso;

defecto:

descanso;

}

if (x> = ancho) x = 0; de lo contrario if (x <0) x = ancho -1;

si (y> = altura) y = 0; si no (y <0) y = altura - 1;

para (int i = 0; i <nTail; i ++)

if (tailX [i] == x && tailY [i] == y)
gameover = verdadero;

if (x == fruitX && y == fruitY) {

puntuación + = 10;

fruitX = rand ()% ancho;

fruitY = rand ()% altura;

nTail ++;

}

}

int main ()
{

Preparar();

while (! gameover) {

Dibujar ();

Entrada ();

algoritmo ();

}

devuelve 0;

}

Artículos Relacionados