Red de conocimiento informático - Problemas con los teléfonos móviles - Al reproducir programación

Al reproducir programación

Lo que quieres es el programa de programación de serpientes, ¿verdad?

#Definición N 200

# incluir ltgraphics.h gt

# incluir ltstdlib.h gt

# incluir ltdos.h gt

#Definir 0x4b00 izquierda

#Definir 0x4d00 derecha

#Definir 0x5000 hacia abajo

#Definir hasta 0x4800

#define ESC 0x011b

int i, key

int score = 0; /*score*/

int gamespeed = 50000/*Ajustar el juego usted mismo Velocidad*/

Estructura de la comida

{

int x;*Food abscissa*/

int y;/*Food La ordenada de Snake

{

int x[N];

int y[N];

int node;/* Nudo de la serpiente Número*/

int dirección /*La dirección de movimiento de la serpiente*/

int vida/*La vida de la serpiente, 0 está vivo, 1 está muerto* /

}Serpiente;

void Init(void); /*Controlador de gráficos*/

void Close(void); /*Fin del gráfico*/

void DrawK(void); /*Pantalla de inicio*/

void game over(void);/*Fin del juego*/

void gameplay(void) /* El proceso específico de jugar el juego*/

void PrScore(void);/*Resultados de salida*/

/*Función principal*/

Administrador de vacíos (void )

{

init(); /*Controlador de gráficos*/

DrawK() /*Pantalla de inicio*/

Jugabilidad();/*Proceso detallado del juego*/

close();/*Fin del gráfico*/

}

/*Controlador de gráficos*/

inicialización de vacío (void)

{

int gd=DETECT, GM;

init gráfico( amp; gd, ampgm, "c:\\TC");

borrar dispositivo();

}

/*Pantalla de inicio, la las coordenadas de la esquina superior izquierda son (50, 40), las coordenadas de la esquina inferior derecha son (610, 460 */

void DrawK (inválido)

{

/*setbkcolor (verde claro); */

set color(11);

setlinestyle(SOLID_LINE, 0, THICK _ WIDTH); */

for(I = 50; ilt=600; i =10)/*Dibujar una valla*/

{

Rectángulo (I, 40 , i 10, 49); /* Mayor que */

Rectangle(I, 451, i 10, 460); /* menor que */

}

for(I = 40; i lt =450; i =10)

{

Rectángulo (50, I, 59, I 10 /*izquierda*/);

p>

Rectángulo (601, I, 610, I 10); /*derecha*/

}

}

/*jugando juegos Específico proceso*/

Juego no válido (nulo)

{

randomize(); /*Generador de números aleatorios*/

comida. yes = 1; /*1 significa que es necesario que aparezca nueva comida, 0 significa que la comida ya existe*/

snake life = 0; /*alive*/

snake . 1; /*dirección derecha*/

serpiente .x[0]= 100; serpiente .y[0]= 100; /*cabeza de serpiente*/

serpiente . 1]= 110; serpiente . y[1]= 100;

nodo serpiente = 2; /*Número de secciones*/

PrScore(); /

Y (1)/*Puedes jugar el juego repetidamente, presiona ESC para finalizar*/

{

Y (!Khit ())/ *Serpiente Muévete tú mismo sin presionar una tecla*/

{

If(food.yes==1)/*Se requiere nueva comida*/

{

comida . x = rand() 400 60;

comida . y = rand() 350

Y (comida. /*Después de que aparece la comida; aleatoriamente, la comida debe estar en toda la cuadrícula para que la serpiente la coma*/

comida x;

Y (food.y10!=0)

comida . y;

comida sí = 0;/*Hay comida en la pantalla*/

}

If(comida.yes== 0)/*Si hay comida en la pantalla, se mostrará*/

{

setcolor(green);

Rectangle(food.x , comida .y,comida.x 10,comida.y-10);

}

for(I = serpiente.nodo-1;igt0;I-)/*serpiente Cada enlace avanza, que es el algoritmo clave de serpiente*/

{

snake x[I]= serpiente . p>snake . y[I]= serpiente . y[I-1];

}

/*1, 2, 3, 4 significa derecha, izquierda, arriba, esto. el juicio puede mover la cabeza de la serpiente*/

Cambiar (dirección de la serpiente)

{

caso 1: serpiente x[0] = 10; /p>

Caso 2: serpiente .x[0]-= 10;

Caso 3: serpiente y[0]-= 10; Caso 4: serpiente . y[0] = 10; break;

}

for(I = 3; i ltsnake . node; I )/* de serpiente en el cuarto trimestre , juzga si te has golpeado a ti mismo, porque la cabeza de la serpiente tiene dos cuartos y es imposible darse la vuelta en el tercer cuarto*/

{

if(snake. x[ I ]= = serpiente .*/

vida de serpiente = 1;

>

Romper;

}

}

if(serpiente . x[0] lt; 55 | | serpiente . x[0] gt; 595 | | serpiente . y[0] lt; 55||

serpiente . y[0] gt; /p>

juego terminado(); /*Este juego ha terminado*/

vida de serpiente = 1; /*La serpiente muere*/

}

If(snake.life==1)/*Después de los dos juicios anteriores, si la serpiente muere, salta del bucle interno y comienza de nuevo*/

Romper;

if (serpiente . x[0]= = comida . (0); /*Eliminar comida de la imagen*/

Rectangle(comida.x, comida.y, comida.x 10, comida. y-10);

serpiente . La posición de un segmento */

snake . /*El cuerpo de la serpiente tiene un segmento largo*/

comida yes = 1; /*Es necesario que aparezca nueva comida en la pantalla */

Puntuación = 10;

PrScore() /*Producir nueva puntuación*/

}

set color(4 ); /*Dibuja una serpiente*/

for(I = 0; iltsnake. node; i)

Rectángulo (snake.x[i], Snake.y[i ], Snake.x[i] 10,

snake . y[I]-10);

Retraso (gamespeed);

set color(0 ); /*Eliminar la última sección de la serpiente con negro*/

Rectángulo (snake.x[snake.node-1], Snake.y[snake.node-1],

snake .If(snake.life==1)/*Si la serpiente muere, salta fuera del bucle*/

Break;

tecla = tecla BIOS(0);/*Botón Recibir* /

If(key==ESC)/*Presione ESC para salir*/

Descanso;

Otros

if(key = = UP amp; amp serpiente, dirección! =4)

/*Determinar si moverse en la dirección opuesta*/

dirección serpiente = 3;

Otros

. if( clave = = DERECHA amp; amp serpiente, dirección! =2)

dirección de la serpiente = 1;

Otro

if(clave = = IZQUIERDA. amp; amp serpiente, dirección! =1)

serpiente dirección = 2;

Otros

if(clave = = DOW

N&serpiente, dirección! =3)

dirección de la serpiente = 4;

}/*end while(1)*/

}

/*Juego Fin*/

Fin del juego no válido (no válido)

{

borrar dispositivo();

PrScore();

setcolor(rojo);

settextstyle(0, 0, 4);

outtextxy(200, 200, "Juego terminado");

getch();

}

/*Resultados de salida*/

PrScore no válido (no válido)

{

char str[10];

setfillstyle(SOLID_FILL, amarillo);

Bar(50, 15, 220, 35);

establecer color (6);

settextstyle(0, 0, 2);

sprintf(str, "puntuación: d", puntuación

outtextxy(55); , 20, str);

}

/*Fin del gráfico*/

Cierre no válido (no válido)

{

getch();

closegraph();

}