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

Código fuente de WRText

/*Código del juego Snake*/

# incluir ltgraphics.h gt

# incluir ltstdlib.h gt

# incluir lttime.h gt

# include ltdos.h gt

#Definir el número máximo de uniones 200

#Definir izquierda 0x4b00

#Definir derecha 0x4d00

#Definir 0x5000 abajo

#Definir hasta 0x4800

#Definir ESC 0x011b

#Definir MV_RIGHT 1

#Definición MV_LEFT 2

#Define MV_UP 3

#Define MV_DOWN 4

void init graph(void); /*Función de inicialización del controlador de gráficos*/

void DrawFence(invalid);/*Dibuja la escena del juego*/

void GameOver(int score);/*Finalizar el juego*/

void gameplay(void) ;/ *Proceso detallado del juego*/

void pr score(int score);/*Resultado de salida*/

Estructura alimentaria/*Definición de estructura alimentaria*/

{

int x; /*coordenada en abscisa de los alimentos*/

int y;/*coordenada vertical de los alimentos*/

int addFood/ *Determinar si aparecerá la variable de comida*/

};

Estructura serpiente/*Definición de estructura de serpiente*/

{

int x[MAX_JOINTS];/*Guardar las coordenadas de la columna de la primera parte de la serpiente en la pantalla*/

int y[MAX_JOINTS];/*Guardar la línea de la primera parte de la serpiente en la pantalla Coordenadas*/

Uniones internas /*Número de nudos de la serpiente*/

dirección int; /*Dirección de movimiento de la serpiente*/

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

};

/*Función principal*/

Principal()

{

int graph();/*Controlador de gráficos*/

draw valla();/*Escena del juego*/

Propiedad del juego();/*El proceso específico de jugar el juego*/

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

}

/*Función de inicialización del controlador gráfico */

void InitGraph(void)

{

int gd = DETECT, GM

init gráfico( amp; gd , ampgm, "";

cleardevice();

setbkcolor(azul);

cleardevice()

setcolor( blanco);

settextstyle(DEFAULT_FONT, HORIZ_DIR, 3

outtextxy(170, 150, "Serpiente"); >

outtextxy(219, 254, "Listo");

setcolor(azul);

borrar dispositivo();

}

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

>

Valla de dibujo no válida (no válida)

{

int I;

setbkcolor(verde claro);

establecer color (11);

setlinrstyle(SOLID_LINE, 0, THICK _ WIDTH);

/*Dibujar una valla*/

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

{

Rectángulo (I, 40, i 10, 49); /*Mayor 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); */

}

}

/*Controla la serpiente codiciosa para comer comida*/

Juego no válido (nulo)

{

int i,key

int gamespeed = 22000/*Controlar la velocidad del juego*/

int puntuación = 0;/*Grabar Puntuación del juego*/

Estructura de comida; /*Estructura de comida variable*/

estructura Serpiente serpiente; /* Estructura de serpiente variable*/

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

snake life = 0 /*Establece el estado de vida de la serpiente en vivo*/

< p; >snake.direction = MV_right; /*Coloca la cabeza de la serpiente a la derecha*/

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

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

serpiente = 2; 2*/

Prscore(score);

/*Repite el juego hasta presionar la tecla Esc*/

srand(time(NULL));

mientras(1)

{

mientras(!kbhit())

{ if(food.addfood==1)

{

comida . x = rand() 400 60

comida . *Aparece comida Finalmente, debe estar en toda la grilla para que la serpiente coma*/

Y (comida.x10! =0)

{

comida x;

}

Y (comida.y10!=0)

{

comida . y;

}

comida = = 0; p>

}

If(food.addFood==0) /*Si hay comida en la pantalla,*/

{

setcolor (verde);

Rectangle(comida.x, comida.y, comida.x 10, comida . x-10); I = serpiente .

p>{

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

serpiente . /p>

}

/*1, 2, 3, 4 significa izquierda, derecha, arriba, abajo determina el movimiento de la cabeza de la serpiente*/

Interruptor (serpiente dirección)

{

caso MV _ DERECHA: serpiente x[0] = 10;

caso MV _ IZQUIERDA: serpiente x[0]. ]- = 10; romper;

caso MV _ ARRIBA: serpiente y[0] = 10; 10; Romper;

}

/*Juzga si te has golpeado con la cuarta sección de la serpiente, porque la cabeza de la serpiente tiene dos secciones y es imposible darse la vuelta. en la tercera sección*/

for(I = 3; iltsnake.jointi)

{

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

{

GameOver(puntuación); /*Error de visualización*/

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

Romper;

}

}

/* Determina si la serpiente golpea la pared* /

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

{

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

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

Romper;

}

/*Después de los dos juicios anteriores, si la serpiente muere, salta del bucle interior y comienza de nuevo*/

if(serpiente . vida = = 1)descanso;

if(serpiente . x[0]= = comida . x amp; ampSnake.y[0]==comida.y) /*Después de comer arroz*/

{

/*Borrar la comida en la imagen*/

establecer color(o);

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

/*Primero coloque el nuevo segmento fuera de la vista y luego tome la posición del anterior. segmento en el siguiente bucle*/

snake .articulación; /*El cuerpo de la serpiente tiene una sección larga*/

comida agregar comida = 1; screen*/

Puntuación = 10;

Prscore(score);/*Salir nueva puntuación*/

}

/* Dibuja una serpiente*/

set color(4);

for(I = 0; iltsnake.jointi)

(

rectángulo(serpiente.x [i], serpiente.y[i],

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

}

Retraso (velocidad del juego); /*Retraso para controlar la velocidad de la serpiente*/

/*Eliminar la última parte de la serpiente*/

conjunto

color(0);

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

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

}/* fin de while (!kbhit)*/

if (serpiente . vida = = 1 ) break; /*Si la serpiente muere, sal del bucle*/

key = BIOS key() /*Presiona la tecla de recepción*/

/*Determina si la tecla se mueve en la dirección opuesta, presione Esc para salir*/

if(key == Esc)break

else if(key == UP & ampSnake. Direction! =4)

snake.direction = MV _ ARRIBA

else if(key == DERECHA& serpiente, dirección!=MV_LEFT)

snake.direction = MV_right;

p>

else if(key == IZQUIERDA amp; amp serpiente, dirección!=MV_RIGHT)

snake.direction = MV _ IZQUIERDA

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

snake.direction = = MV _ DOWN

}/* while end(1)*/

} /*Finalizar juego*/

Fin de juego no válido (puntuación de inteligencia)

{

cleardevice();

Prscore (puntuación);

setcolor(rojo);

settextxy(0, 0, 4);

outtextxy(200, 200, "juego over");

p>

Get()

}

/*Resultado de salida*/

Prscore no válido( int puntuación)

{

char str[10];

setfillstyle(solid_FILL,YELLON);

Bar(50,15,220 ,35);

establecer color(6);

settextstyle(0, 0, 2);

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

outtextxy(55, 20, str);

}