Red de conocimiento informático - Descarga de software - Un código de juego pequeño escrito con "vc" o "c", ¿cuál es el código fuente?

Un código de juego pequeño escrito con "vc" o "c", ¿cuál es el código fuente?

#includelt;graphics.hgt;

#includelt;stdlib.hgt;

#includelt;dos.hgt;

# definir IZQUIERDA 0x4b00

#definir DERECHA 0x4d00

#definir ABAJO 0x5000

#definir ARRIBA 0x4800

#definir ESC 0x011b

int i, clave;

int score=0;

int gamespeed=32000

struct Food /*Estructura de alimentos*/

p>

{

int x; /*La abscisa de la comida*/

int y /*La ordenada de la comida*/

int yes; /*Variable para determinar si aparece la comida*/

}comida;

struct Snack /*Estructura de la merienda*/

{

int x[N];

int y[N];

int nodo; /*Número de nodos de serpiente*/

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

int vida; /*La vida de la serpiente, 0 viva, 1 muerta*/

}serpiente;

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

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

void DrawK(void); */

void GameOver(void); /*Función de fallo de salida*/

void GamePlay() /*Programa principal de la función de control del juego*/

void PrScore (void); /*Función de salida de puntuación*/

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

{

if (ch== '3')

{

delay(gamespeed); /*delay es la función de retraso*/

delay(gamespeed);

}

else if(ch=='2')

{

retraso(velocidad del juego);

}

}

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

{

char ch;

printf(" Por favor, elige la velocidad del juego:\n");

printf("1-Rápido 2-Normal 3-Lento\n");

printf("\ nPor favor presione los números .\n");

do

{ch=getch();}

while(ch!='1'amp. ;amp;ch! ='2'amp;amp;ch!='3');

clrscr();

return(ch);

}

/*Función principal*/

void main(void)

{

int ch;

ch=Menú();

Init();

DrawK();

GamePlay(ch

Cerrar(); ;

}

void Init(void)

{

int gd=DETECT, gm;

initgraph(amp;gd,amp;gm,"c:\\tc");

cleardevice();

}

void DrawK(void)

{

setcolor(11);

setlinestyle(SOLID_LINE, 0, THICK_WIDTH);

for(i=50; ilt); ;=600; i =10)

{

rectangle(i, 40, i 10, 49) /*Dibuja el borde superior*/

rectángulo(i, 451, i 10, 460); /*Dibujar el borde inferior*/

}

for(i=40; ilt; =450; i =10)

{

rectangle(50, i, 59, i 10); /*Dibujar el borde izquierdo*/

rectangle(601, i, 610, i 10); /*Dibuja el borde derecho*/

}

}

void GamePlay(char ch)

{

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

food.yes=1; /*1 significa que aparecerá comida, 0 significa que existirá comida*/

snake.life=0;

snake.direction=1;

snake.x[0]=100; serpiente.y[0]=100;

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

snake.node=2;

PrScore();

while(1) /*El juego se puede repetir*/

{

while(!kbhit()) /*La serpiente se mueve sola sin presionar un botón*/

{

if(food.yes==1) /*Necesito comida*/

{

food.x=rand ( )400 60;

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

while(food.x10!=0)

food.x;

while(food.y10!=0)

food.y /*Juzga si la comida aparece en toda la cuadrícula*/

food.yes=0; /*Hay comida ahora*/

}

if(food.yes==0) ​​​​/*Hay ahora se muestra la comida*/

{

setcolor(GREEN);

rectangle(food.x, food.y, food.x 10, food. y- 10);

}

for(i=snake.node-1;igt;0;i--) /*Algoritmo de movimiento de la serpiente*/

{

serpiente.x[i]=serpiente.x[i-1];

serpiente.y[

i]=snake.y[i-1]; /*Algoritmo de movimiento del cuerpo de Snake*/

}

switch(snake.direction) /*Algoritmo de movimiento de la cabeza de Snake para controlar el movimiento */

{

caso 1: serpiente.x[0] =10; romper;

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

caso 3: serpiente.y[0]-=10;

caso 4: serpiente.y[0 ] =10;

}

for(i=3; ilt; Snake.node; i ) /*Determinar si la cabeza choca con el cuerpo*/

{

if(snake.x[i]==snake.x[0]amp;amp;snake.y[i]==snake.y[0])

{

GameOver();

snake.life=1;

romper;

}

}

/*Lo siguiente es para determinar si golpea la pared*/

if(snake.x[0]lt; 55||snake.x[0]gt; 595||snake.y[ 0]lt; 55||snake.y[0]gt; 455)

{

GameOver();

snake.life=1;

}

if(snake.life==1) /*Salir del ciclo si muere*/

romper;

p>

if(snake.x[0]==food.xamp;amp;snake.y[0]==food.y) /*Determinar si la serpiente ha comido comida*/

{

setcolor(0);

rectangle(food.x, food.y, food.x 10, food.y-10 /*Usa negro después de comer, limpia la comida*); /

snake.x[snake.node]=-20; Snake.y[snake.node]=-20; /*Ahora ponga la sección agregada fuera de la vista */

serpiente.nodo;

comida.yes=1;

puntuación =10

PrScore() ;

}

setcolor(4); /*Borrar el cuerpo detrás de cada movimiento*/

for(i=0; ilt; Snake.node; i )

rectangle( serpiente.x[i], serpiente.y[i], serpiente.x[i] 10, serpiente.y[i]-10);

retraso(velocidad del juego);

DELAY(ch);

setcolor(0);

rectangle(snake.x[snake.node- 1], serpiente.y[snake.node-1], serpiente .x[snake.node-1] 10, serpiente.y[snake.node-1]-10);

}

if(snake.life==1)

romper;

key=bioskey(0); /*Aceptar clave*/

if(key==ESC)

romper ;

el

se

if(key==UPamp;amp;snake.direction!=4)/*determinar si se debe cambiar de dirección*/

snake.direction=3;

else

if(key==RIGHTamp;amp;snake.direction!=2)

snake.direction=1;

else

if(key==LEFT&snake.direction!=1)

snake.direction=2;

else

si ( clave==ABAJO&snake.direction!=3)

snake.direction=4;

}

}

void GameOver(void)

{

cleardevice();

setcolor(ROJO);

settextstyle(0, 0, 4 );

outtextxy(200, 200, "JUEGO TERMINADO");

getch();

}

void PrScore. ( vacío)

{

char str[10];

setfillstyle(SOLID_FILL, AMARILLO);

bar(50, 15 , 220, 35);

setcolor(6);

settextstyle(0, 0, 2);

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

outtextxy(55, 20, str);

}

void Close(void)

{

getch();

closegraph();

}

Serpiente