Red de conocimiento informático - Conocimientos de programación - Compartir código fuente del programa

Compartir código fuente del programa

La descripción del juego es la siguiente:

1. La serpiente puede moverse automáticamente en línea recta, o el jugador puede controlarla para que se mueva hacia arriba, abajo, izquierda y derecha mediante las teclas de dirección, un cuadro. a la vez.

2. La serpiente se mueve en el área designada cuando:

① Cuando la serpiente toca la pared

(2) La codiciosa cabeza de la serpiente toca la serpiente; cuerpo o cola cuando;

③Cuando la entrada del teclado del jugador no es la tecla de dirección;

La línea de comando muestra "¡Juego terminado!" y luego sale del juego.

3. Se genera un "Doudou" aleatoriamente en la zona por donde se mueve la serpiente. Cuando una serpiente come "guisantes", el cuerpo de la serpiente crecerá un cuadrado y su tiempo de avance automático se acortará.

Cortos 100 ms (el valor predeterminado es 1000 ms, no puede ser inferior a 100 ms). Cada vez que la longitud de la serpiente es múltiplo de 8, aumenta en un nivel.

El código C++ es el siguiente:

#Contiene? <bios.h>?

#¿Incluir? <conio.h>?

#¿Incluir? <dos.h>?

#¿Incluir? <graphics.h>?

#¿Incluir? <stdlib.h>?

#¿Incluir? <time.h>?

¿Usar? ¿Espacio de nombres? enfermedad de transmisión sexual?

¿Integrado? ¿Vacío? display(char?gsDomain[][22],?int?level,?int?moveSpeed)?

{?

sistema("cls");? // ¿Borrar la pantalla?

¿cómo? <<? final? <<? final?

¿Para qué? (int?i?=?0;?i?<?22;?i++)?

{?

cout? <<? ¿"\t"?

¿Para qué? (int?j?=?0;?j?<?22;?j++)?

¿cómo? <<? gsDominio[i][j]? <<? "?";?

¿Y si? (¿Yo?==?0)?

{?

cout? <<? \tNivel:? <<? nivel;?

}?

¿Y si? ¿si? (¿Yo?==?3)?

{?

cout? <<? "\tAvanzar el tiempo automáticamente";?

}?

¿Y si? ¿si? (¿Yo?==?5)?

{?

cout? <<? \tIntervalo de tiempo:? <<? ¿velocidad de movimiento? <<? "?EM ";?

}?

cout? <<? final?

}?

}?

int? principal()?

{?

¿Ciel? Dominio GS[22][22];? //¿Área de actividad de serpientes (incluida la pared)?

//¿Inicializar el área de actividad de las serpientes (excluyendo las paredes)?

¿Para qué? (int?i?=?1;?i?<=?21;?i++)?

{?

¿Para qué? (int?j?=?1;?j?<=?21;?j++)?

¿Dominio gs[i][j]? =?'?';?

}?

//¿Inicializar las paredes superior e inferior del área de actividad de las serpientes?

¿Para qué? (int?i?=?0;?i?<?22;?i++)?

¿Dominio gs[0][i]? =?gsDomain[21][i]? =?'-';?

//¿Inicializar las paredes izquierda y derecha del área de actividad de las serpientes?

¿Para qué? (int?i?=?1;?i?<?21;?i++)?

¿Dominio gs[i][0]? =?gsDomain[i][21]? =?'|';?

//¿Inicializar serpiente?

¿Para qué? (int?i?=?1;?i?<=?3;?i++)?

¿Dominio gs[1][i]? =?'*';?

//¿Inicializar la cabeza de serpiente?

¿Dominio gs[1][4]? =?'#';?

int? serpiente[2][100];? // ¿Registrar las coordenadas de posición de cada vez que aparece la serpiente?

¿Para qué? (int?i?=?0;?i?<?4;?i++)?

{?

serpiente[0][i]? =?1;? // ¿Registrar la coordenada x de la ubicación de la serpiente?

<

p>serpiente[1][yo]? =?Yo? +?1;? // ¿Registrar la coordenada y de la ubicación de la serpiente?

}?

int? ¿cabeza? =?3,?cola? =?0,?Longitud? =?4;?

int? frijolX? ¿frijol? // ¿Dónde aparece Doudou?

srand(hora(0));?

¿

{?

beanX? =?Rand()? %?20?+?1;?

¿Benny? =?Rand()? %?20?+?1;?

}?¿Cuándo? (gsDomain[beanX][beanY]?!=?'?');?

gsDomain[beanX][beanY]? =?'*';? //¿Doudou?

¿cómo? <<? "\n\n\t\¡El juego de la serpiente está por comenzar!\n";?

¿Dragón? comenzar;?

int? ¿nivel? =?1,?velocidad de movimiento? =?1000;?

¿Para qué? (int?I?=?3;?I?>=?0;?I-)?

{?

¿Empezar? =?reloj();?

¿Cuándo? (reloj()?-?inicio?<=?1000){}?

sistema("cls");?

¿Y si? (uno)?

{?

cout? <<? \n\n\t\¿Ingresar a la cuenta regresiva del juego? <<? ¿I? <<? final?

}?

Otro

Display(gsDomain, horizontal, ? moveSpeed);?

}?

¿Ciel? ¿dirección? =?77;? // ¿Snake va automáticamente directo a la derecha de forma predeterminada?

¿Cuándo? (real)?

{?

¿Booleano? ¿Escala de tiempo? =?Verdadero;?

int? incógnita,? y;?

¿Empezar? =?reloj();?

//Si el tiempo excede el tiempo de avance automático o se presiona una tecla en el teclado, ¿terminar el bucle?

¿Cuándo? ((timeFlag?=?(clock()?-?start?& lt=?moveSpeed))?& amp& amp?!kbhit()){}?

¿Y si? (bandera de tiempo)?

{?

//¿Leer la entrada del teclado cuando se presiona una tecla en el teclado?

obtener();?

¿Dirección? =?obtener();?

}?

¿Cambiar? (dirección)?

{?

//¿Arriba?

¿Caso? 72:?x? =?Serpiente[0][cabeza]? -?1,?y? =?serpiente[1][cabeza];?

Romper;?

//¿Bajar?

¿Caso? 80:?x? =?Serpiente[0][cabeza]? +?1,?y? =?serpiente[1][cabeza];?

¿Romper;?

//¿A la izquierda?

¿Caso? 75:?x? =?Serpiente[0][cabeza],? ¿y? =?Serpiente[1][cabeza]? -?1;?

¿Romper;?

//¿A la derecha?

¿Caso? 77:?x? =?Serpiente[0][cabeza],? ¿y? =?Serpiente[1][cabeza]? +?1;?

¿Romper;?

Predeterminado:? ¿corto? <<? "\t¿Juego? ¡Se acabó!\n";?

¿Volver? 0;?

}?

¿Y si? (x?==?0?||?x?==?21?||?y?==?0?||?y?==?21)?

{?

//¿La serpiente chocó contra una pared?

¿cómo? <<? "\t¿Juego? ¡Se acabó!\n";?

¿Volver? 0;?

}?<

/p>

¿Y si? (gsDomain[x][y]?!=?'?'?& amp& amp?! (x?==?beanX?& amp& amp?y?==?beanY))?

{?

//¿La cabeza de la serpiente está tocando el cuerpo de la serpiente o la cola de la serpiente?

¿cómo? <<? "\t¿Juego? ¡Se acabó!\n";?

¿Volver? 0;?

}?

¿Y si? (x?==?beanX?& amp& amp?y?==?beanY)?

{?

//¿Comer guisantes?

Longitud++;? //¿Agregar 1 a la longitud?

¿Y si? (¿longitud?& gt=?8)?

{?

//¿Procesamiento de actualización del juego?

¿Longitud? -=?8;?

nivel++;?

¿Y si? (¿moveSpeed?& gt?100)?

moveSpeed? -=?100;?

}?

¿Dominio GS[serpiente[0][cabeza]][serpiente[1][cabeza]]? =?'*';?

¿Dominio gs[x][y]? =?'#';?

¿Cabeza? =?(cabeza?+?1)?%?100;?

¿Serpiente[0][cabeza]? =?x;?

¿Serpiente[1][cabeza]? =?y;?

¿

{?

beanX? =?Rand()? %?20?+?1;?

¿Benny? =?Rand()? %?20?+?1;?

}?¿Cuándo? (gsDomain[beanX][beanY]?!=?'?');?

gsDomain[beanX][beanY]? =?'*';?

display(gsDomain, horizontal, ? moveSpeed); //¿Mostrar en pantalla?

}?

Otros

{?

//¿No comes guisantes?

¿Dominio GS[serpiente[0][cola]][serpiente[1][cola]]? =?'?';? //¿Mover la cola de la serpiente un espacio hacia adelante?

¿Cola? =?(cola?+?1)?%?100;?

¿Dominio GS[serpiente[0][cabeza]][serpiente[1][cabeza]]? =?'*';?

¿Cabeza? =?(cabeza?+?1)?%?100;?

¿Serpiente[0][cabeza]? =?x;?

¿Serpiente[1][cabeza]? =?y;?

¿Dominio gs[x][y]? =?'#';? //¿Mover la cabeza de la serpiente un espacio hacia adelante?

display(gsDomain, horizontal, ? moveSpeed); //¿Mostrar en pantalla?

}?

}?

¿Volver? 0;?

}