Red de conocimiento informático - Material del sitio web - Escribir un juego de serpientes usando programación en lenguaje C en un entorno DOS

Escribir un juego de serpientes usando programación en lenguaje C en un entorno DOS

Diseño y descripción del programa

1

, pared lateral (

Muro

)

Esta clase especifica el tamaño del juego.

2

Snake (

Snake

)

Utiliza esta clase para generar una instancia de serpiente

2

Snake (

Snake

)

Utiliza esta clase para generar una instancia de serpiente

p>

serpiente

3

, mover (

Mover

)

Esta categoría Se utiliza para realizar el control de operación de la serpiente, es decir, la operación de movimiento de la cabeza de la serpiente hacia arriba, abajo, izquierda y derecha.

4

Categoría de comida (

Comida

)

Esta categoría es comida aleatoria durante el juego. Controles y displays generados.

5

Juicio de muerte (

Muerto

)

Este tipo es para juzgar la muerte durante el juego.

6

Nodo de serpiente (

SnakeNode

)

Este tipo es comido aleatoriamente por las serpientes. La producción de alimento aumenta así la longitud de las especies controladas, lo que incluye aumentos en la longitud de las serpientes y cambios en la cola.

7

Estadísticas de puntuación (

Puntuación

)

Esta categoría se basa en el rendimiento del juego del jugador. Registre y puntúe el resultado al final del juego.

...

Algunas funciones y descripciones

1.Char menu()

/*

Utilizado para la velocidad del juego seleccionada por el jugador, devuelve un

char

valor

*/

2.DELAY(char ch1) ;

/*

Se utiliza para controlar la velocidad del juego

*/

3.void drawmap(); >

/*

Función de mapa del juego de dibujo

*

4

,

menú vacío ()

/*

Salida de la información de ayuda del juego

*

...

Explicación de algunos detalles de clasificación

1

, Construcción de la serpiente

Serpiente

clase Serpiente{

público:

int x[n]

int y[n];

int nodo

/ /

Longitud del cuerpo de la serpiente

int dirección; //

Dirección del movimiento de la serpiente

int

vida; //

Vida de serpiente, juez muerte

2

, comida aleatoria

Comida

Utilice

la función rand(

) para generar números aleatorios y luego coordinar el posicionamiento

void Food(void){

...

int pos_x = 0;

int pos_y = 0;

pos_x = rand() longitud; >

Determinación de coordenadas

pos_y = rand() (ancho-1); //y

Determinación de coordenadas

...

| /p>

...

interruptor(){

caso VK_UP: {

OutChar2.Y--;

y--;

romper;

}

caso VK_LEFT: {

OutChar2.Y;

y;

romper;

}

caso VK_DOWN: {

OutChar2.X--- ;

x--;

romper;

}

caso 'VK_RIGHT: {

OutChar2. X;

x;

romper

}

}

código

#include lt;iostreamgt ;

#include lt;ctimegt;

#include lt;conio.hgt

#include lt;windows.hgt;

#include lt; tiempo.hgt;

usando n

amespace std;

int score=0, t=300, f=1 //

Puntuación e intervalo de tiempo

/ms

(Controla la velocidad de la serpiente codiciosa)

double ss=0, tt=0; //

Parámetros utilizados para el tiempo estadístico

clase Nodo

p>

{

Nodo(): x(0), y(0), anterior(0), siguiente(0) { }

int x;

int y;

Nodo *anterior;

Nodo *siguiente

clase de amigo

};

clase Serpiente

{

público:

Serpiente(); ();

salida nula();

movimiento nulo();

punto de cambio nulo(char); /p>

Nodo *cabeza;

Nodo *cola;

enum p{ ARRIBA

, DERECHA, ABAJO, IZQUIERDA }punto;

Dirección

int food_x, food_y; //

Coordenadas de los alimentos

static const int N = 23;

int game[N][N];

void add_head(int, int); //

Agregar coordenadas como

a, b

nodo

void delete_tail(); //

Eliminar el último nodo

void great_food(); //

Generar comida

void gotoxy(int, int)

};

void menu(); //

Menú de operación del juego

int main()

{

system("color a"

);

//

Inicial

cmd

El color de la ventana es negro (fondo) verde claro (texto)

coutlt; lt;"\ n\n\n\n\n\n

"

for(int i=0; ilt; 23; i)

{char star []={"¡Bienvenido al juego de la serpiente!"};

coutlt;lt; star[i];

coutlt ;lt;"\n\n

¡Te deseo buena suerte!

"lt;lt;endl;

Dormir(3000);

if(kbhit()){char kk=getch(); if(kk ==9)f=5;} //

Si se ejecuta, obtiene una estrella y suma

5

puntos

sistema ( "cls");

Serpiente s;

menú();

color 1a");

s.output();

mientras (verdadero)

{

char keydown = getch()

if(keydown==32)getch();

if(keydown==27)return 0

s.change_point(keydown);

mientras (!kbhit())

{clock_t inicio, fin; inicio=reloj()

s.move();

s.output();

Dormir(t);

end=clock(); tt=(doble)(fin-inicio)/CLOCKS_PER_SEC;

coutlt;lt;"

Hora:

"lt;lt;(int)ss;