Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente del software Vc

Código fuente del software Vc

#Definición N 200

# include & ltgraphics.h & gt

# include & ltstdlib.h & gt

# include & ltdos.h & gt

#Definir 0x4b00 izquierdo

#Definir 0x4d00 derecho

#Definir 0x5000 hacia abajo

#Definir hasta 0x4800

#define ESC 0x011b

int i, key

int score = 0; /*score*/

int gamespeed = 50000/*Ajusta la velocidad del juego usted mismo */

Alimentos estructurados

{

int x; /*Abscisa de los alimentos */

int y;/*Vertical de los alimentos coordinar */

int yes/*Determinar si aparecerá la variable de alimento*/

}Alimento /*Estructura de alimento*/

Estructura de serpiente

{

int x[N];

int y[N];

int nodo /*Número de nudos de serpiente */

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

int life/*La vida de la serpiente, 0 está viva, 1 está muerta*/

}Serpiente;

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

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

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

void gameplay(void);/*Jugar The proceso específico del juego*/

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

/*Función principal*/

Administrador no válido (no válido )

{

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

DrawK() /*Pantalla de inicio*/

Jugabilidad();/*El proceso específico de jugar*/

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

}

/* Programa del 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, 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);*/

establecer color(11);

setlinestyle(SOLID_LINE, 0, THICK _ WIDTH); /*Establecer estilo de línea* /

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

{

Rectángulo(I, 40, i+10, 49);/ *arriba*/

Rectangle(I, 451, i+10, 460); /*abajo*/

}

for(I = 40;i<=450;i+=10)

{

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

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

}

}

/*El proceso específico de juego */

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*/

vida de serpiente = 0. ; /*vivo*/

serpiente . /*snake head*/

snake . /

PrScore();/*Puntuación de salida*/

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

{

Y (!Khit ())/*La serpiente se mueve sola sin presionar una tecla*/

{

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

{

comida . 60;

comida . y = rand()% 3560;

Y (food.x%10!=0)/*Después de que la comida aparezca aleatoriamente, la comida debe ser en toda la cuadrícula antes de que la serpiente pueda comerlo*/

comida x++;

Y (comida.y%10!=0)

comida. y++;

comida . yes = 0; /*Hay comida en la pantalla */

}

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

{

setcolor(green);

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

}

p>

for(I = serpiente . nodo-1;I>0;I-) /*Cada eslabón de la serpiente avanza, que es el algoritmo clave de la serpiente*/

{

serpiente x[I]= serpiente. ;

serpiente . y[I]= serpiente .

}

/*1, 2, 3, 4 significa correcto. , izquierda, arriba y abajo. Este juicio puede mover la cabeza de la serpiente*/

Cambiar (dirección de la serpiente)

{

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

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

Caso 3: serpiente y[0]-= 10 ; romper;

Caso 4: serpiente . y[0]+= 10;

}

for(I = 3; I & ltsnake. node; I++)/*Juzga si te golpeaste desde la cuarta sección de la serpiente, porque la cabeza de la serpiente tiene dos secciones, la tercera sección es imposible darse la vuelta*/

{

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

{

juego terminado(); /*fallo de visualización*/

vida de serpiente = 1;

Pausa;

}

}

if(serpiente . x[0]& lt; 55 | | serpiente . x[0]& gt ;595 | p>{

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

snake.

e = 1; /*La serpiente muere*/

}

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

Pausa;

if(snake . x[0]= = comida . *Después de comer comida*/

{

set color(0); /*Eliminar comida de la imagen*/

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

snake.x[snake.node]=-20;snake.y[snake.node]=-20;

p>

/*Primero saque el nuevo segmento vista y toma la posición del segmento anterior en el siguiente bucle*/

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

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

Puntuación += 10;

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

}

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

for(I = 0; i<snake .node;i++)

Rectangle(serpiente) .x[i], serpiente.y[i], serpiente.x[i]+10,

snake .y[I] -10);

Retraso (velocidad del juego) ;

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

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

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

} /*end while(!kbhit)*/

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

Romper;

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

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

Break;

Otro

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

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

serpiente . dirección = 3;

Otros

if(clave == DERECHA & amp; & amp serpiente, dirección!

serpiente . dirección = 2;

Otro

if(clave == ABAJO & & serpiente, dirección! = 3)

dirección de la serpiente = 4;

}/*end while(1)*/

}

/*Juego terminado*/

< p. >Juego no válido terminado (no válido)

{

borrar dispositivo();

PrScore();

setcolor(rojo);

settextstyle(0, 0, 4);

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

getch();

}

/*Resultados de salida*/

Ninguno

ValidPrScore(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 ",score);

outtextxy(55, 20, str);

}

/*Fin del gráfico*/

Cierre no válido (no válido)

{

getch();

closegraph()

}

<; p>Este es el código de Snake, con una explicación detallada, y se puede ejecutar correctamente.