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