Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de puntuación

Programación de puntuación

# incluir ltbits/stdc.

h gt

# incluir ltstdlib.h gt

# incluir ltdos.h gt

#definir izquierda 0x4b00

#definir derecha 0x4d00

#Definir 0x5000 abajo

#Definir hasta 0x4800

#Definir ESC 0x011b

int i, clave

int puntuación = 0;

int gamespeed = 32000

Estructura alimentaria/*Estructura alimentaria*/

{

int x /*Coordenada en abscisa de la comida*/

int y;/*Coordenada vertical de la comida*/

int yes/*Variable de si aparece comida*/

}Alimento;

Estructura de serpiente/*Estructura de serpiente*/

{

int x[N];

int y [ N];

int node; /*El número de nudos de la serpiente*/

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

int life/* La vida de Snake, 0 está vivo, 1 está muerto*/

}Snake;

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

void Close(invalid);/*Cerrar la función del juego*/

void DrawK(invalid);/*Función de dibujo*/

void game over(void);/ * Función de error de salida*/

void gameplay(); /*Función de control del juego programa principal*/

void PrScore(void) /*Función de salida decimal*/

DELAY(char ch)/*Ajustar velocidad del juego*/

{

if(ch=='3 ')

{

Retraso (velocidad del juego); /*retraso es la función de retraso*/

}

else if(ch=='2 ')

{

Retraso (velocidad del juego);

}

}

Menú()/*Menú de inicio del juego*/

{

char ch

printf("Seleccione la velocidad del juego: \ n ");

printf(" 1-rápido 2-normal 3- Lento\n ");

printf(" \nPor favor presione el número..\n ");

Hacer

{ ch = getch( }

Y (ch! = ' 1 ' amp;ampch! = '2' amperios amch! ='3');

clr SCR();

Retorno (ch);

}

/*Función principal* /

Administrador no válido (no válido)

{

int ch

ch = Menú();

init();

DrawK();

Juego (ch);

cerrar();

inicialización de vacío (void)

{

int gd=DETECT, GM;

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

borrar dispositivo();

}

anular Dra

wK(no válido)

{

establecer color(11);

setlinestyle(SOLID_LINE, 0, THICK _ WIDTH);

for(I = 50; i lt = 600; i = 10)

{

Rectángulo (I, 40, i 10, 49 /*Dibuja el borde superior*/);

Rectangle(I, 451, i 10, 460); /*Dibujar borde inferior*/

}

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

{

Rectángulo (50, I, 59, I 10); /*Dibujar el borde izquierdo*/

Rectángulo ( 601, I, 610, I 10);/*Dibuja el cuadro de la derecha*/

}

}

Juego no válido (char ch)

{

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

comida sí = 1; /*1 significa que aparece comida, 0 significa que existe comida* /

vida = 0;

serpiente = 1;

serpiente . 100;

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

nodo serpiente = 2;

PrScore() ;

Y (1) /*Puedes repetir el juego*/

{

Y (!Khit ())/*La serpiente no tiene botón y camina solo*/

{

If(food.yes==1) /*Necesita comida*/

{

comida . x = rand() 400 60;

comida . y = rand() 350 60; /*Usa la función rand para generar coordenadas de comida aleatoriamente*/

Y (comida) .x10!=0)

comida . >

comida sí = 0; /*Ahora hay comida*/

}

Si( food.yes==0) ​​/*Mostrar comida disponible*/ /

{

setcolor(green);

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

}

for(I = serpiente . nodo-1;I gt0;I-)/* Serpiente algoritmo de movimiento*/

{

snake */

}

Switch(snake.direction) /* Algoritmo de movimiento de la cabeza de la serpiente. para controlar el movimiento*/

{

caso 1: serpiente x[0] = 10

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

Caso 4: serpiente y[0] = 10;

}

for(I = 3; Iltsnake. node; I) /*Determinar si la cabeza choca con el cuerpo*/

{

if(serpiente. x[I]= = serpiente. x[0] amp; ampsnake.y[i]==serpiente.y[0])

{

juego terminado();

vida de serpiente = 1;

descanso;

}

}

/*Aquí se explica cómo juzgar si se ha golpeado contra una pared*/

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

{

juego terminado();

vida de serpiente. 1;

p>

}

If(snake.life==1) /*Salir del ciclo si mueres*/

Romper;

if(serpiente. x[0]= = comida. color(0);

Rectángulo (comida.x, comida.y, comida.x 10, comida. y- 10); /*Limpia la comida con negro después de comer*/

serpiente .>

comida

Puntuación = 10; p>PrScore();

}

establecer color (4); /*Limpia la parte posterior del cuerpo después de cada ejercicio*/

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

Rectángulo (snake.x[i] , serpiente.y[i], serpiente.x[i] 10, serpiente .y[I]-10);

Retraso (velocidad del juego);

Retraso (ch);

establecer color(0);

Rectángulo(snake.x[ serpiente.nodo-1], serpiente.y[snake.nodo-1], serpiente.x[snake.nodo-1] 10, serpiente y[snake.nodo-1]-10);

}

if(snake.life==1)

Break;

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

if(key==ESC)

Descanso;

Otros

if(key == ARRIBA amp; amp serpiente, dirección! =4)/*Juzga si cambiar de dirección*/

snake .direction = 3

Otros

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

serpiente. dirección = 1;

Otro

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

dirección de serpiente = 2;

Otro

if(key == DOWN amp; amp serpiente, dirección! = 3)

dirección de serpiente = 4;

}

}

Juego terminado no válido (no válido)

{

borrar dispositivo();

setcolor(rojo);

settextstyle(0, 0, 4);

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

getch();

}

PrScore no válido(no válido)

{

char str[10]; p>

setfillstyle(SOLID_FILL, amarillo);

Barra(50, 15, 220, 35);

establecer color(6);

settextstyle(0, 0, 2);

sprintf(str, "scord: d", puntuación);

outtextxy(55, 20, str);

}

Cierre no válido (no válido)

{

getch();

closegraph();

}