Fuente Novato
#define N 200
#incluye
#incluye
#incluye
#define izquierda 0x4b00
#Definir derecha 0x4d00
#Definir 0x5000 hacia abajo
#Definir hasta 0x4800
#Definir ESC 0x011b
int i, key
int score = 0 /*score*/
int gamespeed = 50000/*ajusta la velocidad del juego tú mismo*/
Estructura Alimentos
{
int x; /*abscisa de los alimentos*/
int y;/*coordenada vertical de los alimentos*/
int yes/*Determinar si aparecerá la variable alimentaria*/
}Alimento /*La estructura de los alimentos*/
Estructura de la serpiente
{ p>
int x[N];
int y[N];
int nodo; /*Número de nudos de serpiente*/
int Dirección; /*La dirección de movimiento de la serpiente*/
int vida/*La vida de la serpiente, 0 está viva, 1 está muerta*/
}Serpiente ;
void Init(void); /*Controlador de gráficos*/
void Close(void); /*Fin del gráfico*/
void DrawK(void); ); /* Pantalla de inicio*/
anular el juego (void); /*Finalizar el juego*/
anular el juego (void); juego*/
void PrScore(void);/*resultado de salida*/
/*función principal*/
Administrador no válido (no válido)
{ p>
init();/*Controlador de gráficos*/
DrawK();/*Pantalla de inicio*/
Juego(); /*Jugar juegos Proceso específico*/
close() /*Fin del gráfico*/
}
/*Controlador de gráficos*/
inicialización de vacío (void)
{
int gd=DETECT, GM;
init graph(amp; gd, ampgm, "c: \\TC" );
clear device();
}
/*Pantalla de inicio, las coordenadas de la esquina superior izquierda son (50, 40 ), y las coordenadas de la esquina inferior derecha son (610 , 460 */
void DrawK (inválido)
{
/*setbkcolor (verde claro ); */
establecer color (11);
setlinestyle(SOLID_LINE, 0, THICK _ WIDTH); /*Establecer estilo de línea*/
para (I = 50; Ilt=600; I =10 )/*Dibujar una valla*/
{
Rectángulo (I, 40, i 10, 49); que*/
Rectángulo ( I, 451, i 10, 460 /*menor que*/
}
for(I = 40; i); lt=450; i =10)
{
Rectángulo (50, I, 59, I 10); /*Izquierda*/
Rectángulo (601); , I, 610, I 10); /*Derecho */
}
}
/*El proceso específico de jugar*/ p>
Juego no válido (vo
id)
{
randomize(); /*Generador de números aleatorios*/
comida sí = 1 /*1 indica que aparecen nuevas necesidades alimentarias. 0 significa que la comida ya está presente*/
snake life = 0; /*alive*/
snake .direction = 1; >
serpiente . x[0]= 100; serpiente . y[0]= 100; /*cabeza de serpiente*/
serpiente 100; 2; /*Número de nodos*/
PrScore(); /*Puntuación de salida*/
Y (1)/ *Puedes jugar el juego repetidamente y presionar ESC para finalizar. */
{
Y (!Khit ())/*La serpiente se mueve sola sin presionar el botón*/
{
If(food.yes==1)/*necesita comida nueva*/
{
comida x = rand() 400 60;
food . y = rand() 350 60;
Y (food.x10!=0)/*Después de que la comida aparezca aleatoriamente, la comida debe estar en toda la cuadrícula, solo las serpientes pueden comer*/ p>
comida .yes = 0;/*Hay comida en la pantalla*/
}
If(food.yes==0)/*If hay comida en la pantalla, se mostrará */
{