conceptos básicos de programación csh
# incluye ltstdio.h gt
# incluye ltstdlib.h gt
# incluye ltconio.h gt
# incluye lttime.h gt
# include ltWindows.h gt
int Calificación = 1, Puntuación = 0, Max_blank = 9, Distancia = 18;
Estructura pájaro { int x; int y };? //Definir un tipo de datos Birds (con 3 miembros)
Birds * Bird = (Birds *)malloc(sizeof(Birds)). ? //Defina la variable puntero tipo Bird of Birds y asigne un valor inicial.
struct Bg{int x, y; int l_blankBg *priBg *siguiente;};? //Definir un tipo de datos Bg (con 5 miembros)
Bg * Bg 1 =(Bg *)malloc(sizeof(Bg));? //Defina la variable de puntero de tipo Bg Bg1 y asigne un valor inicial.
posición vacía (int x, int y)? //Función de posicionamiento del cursor (salida en la posición especificada)
{COORD pos = {x - 1, y-1};
HANDLE Out = GetStdHandle(STD _ OUTPUT _ HANDLE ) ;
SetConsoleCursorPosition(Out, pos);
}
void Csh()? //Inicializar interfaz
{
printf("════════════════════════════ ══════════\n");
printf("■■■Flappy Bird \ n lenguaje C\ n ");
printf("■ ■■\ n ");
printf("■■■\ n ");
printf("■■■■Tonto: AA poss original \ n ");
Printf(" ■■ ■Fecha del violín: 2065 438 04.2 \ n ");
printf("■■■\ n "); "■■■■Adaptado de: Understanding Cicada 2021.7 \ n ");
Printf(" ■■ ■■Operación: Presione la tecla de flecha hacia arriba para dejar que el pájaro despegue\ n "); p>
printf("■■\ n ");
printf("■■\ n ");
printf("■■■\ n ");
printf("■■■\ n ");
printf("■■■\ n ");
printf("■■■\ n ") ;
printf("■■■■devc a través de\ n ");
printf("═══════════════ ═══ ════════════════════\n”);
printf("? Presione el botón para continuar..."); /p>
getch();
system("cls");
}
¿Anular PrFK()? //Cuadro de salida (área de rango del juego)
{ int I;
Posición (1, 1); printf ("╔");? Posición (79, 1); printf ("╗");
Posición (1, 24); Posición (79, 24); printf ("╝");
for (I = 3; i lt = 78; i = 2) {Posición (i, 1") ;Posición(I,24);printf("═");}
for(I = 2;ilt=23;i)
{Posición(1,I) ; printf("║"); if (i lt11) printf ("0d ", I-1); else printf ("d ", I-1);
Posición (79, I); ("║");
}
Posición (4, 25); Printf("El pájaro aparecerá pronto, por favor presiona el botón y prepárate para despegar..." ) ;
getch();
Posición (4, 25); printf("?);
}
void CreatBg ( )? //Crear coordenadas de obstáculos (fácil de imprimir)
{ Bg *
Bg2 =(Bg *)malloc(tamañode(Bg));
BG 1->; // Determina las coordenadas básicas de un par de obstáculos (el valor está fuera del marco del juego en este momento)
bg2->; x = BG 1- gt; 9;? //Coordenadas básicas xey del siguiente obstáculo
BG 1->;l_blank = Max_blank-Grade;? //La distancia en blanco entre las partes superior e inferior del obstáculo l_blank
bg2->; l_blank = Max_blank-Grade;
BG 1->; pri = Bg2
bg2->siguiente = BG 1 bg2->pri = BG 1
}
void InsertBg(Bg * p)? //Cambie aleatoriamente la coordenada Y del obstáculo para hacer que el canal en blanco cambie hacia arriba y hacia abajo.
{ int temp
Bg * Bgs =(Bg *)malloc(sizeof(Bg));
bgs- gt; x = p- gt; Prioridad - gt; //Iniciar el generador de números aleatorios
temp = rand();? // Genera un número aleatorio y asígnalo a temp.
if(temperatura 2 == 0)
{ if((temp 4 p- gt; prioridad- gt; y Max_blank-Grade) lt; 21) p >
bgs-gt;y = p-gt;prioridad-gt;y temp 4;
si no bgs-gt;y = p-gt;prioridad-gt;y;
}
Otros
{ if((p- gt; prioridad- gt; y temperatura 4)>2) Bgs- gt; y = p- gt;Prioridad - gt;y temp 4;
En caso contrario Bgs - gt;y = p - gt;Prioridad - gt;y;
}
bgs- gt; = p- gt; pribgs- gt; siguiente = p;
p->; prioridad- gt; siguiente = Bgsp->; p>void CreatBird()? //Establece las coordenadas del pájaro (inicialmente imprime la posición del pájaro)
{ Bird- gt; (Bg*q)? // Determina si el juego ha terminado (0 significa terminado, 1 significa no terminado)
{ Bg * p = q; int I = 0
And ( I lt; = 5)
{ if (Bird- gt; y gt23) devuelve 0
if (Bird- gt; x == p- gt; x amp bird- gt; y lt = p->y) devuelve 0;
if ((bird-gt; x = = p- gt; x || bird- gt; x = = p- gt; >; x = = p -gt; ;x = = p- gt; x 1 ||pájaro->; x = = p- gt; gt; siguiente;
}
Devolver 1;
}
¿void Check_Bg(Bg *q)? //Comprueba si las coordenadas del obstáculo inicial están dentro del área de juego.
{ Bg * p = q; int i = 0, temp
And ( I lt; = 5)
{ if (p- gt; x gt-4)p = p->;Siguiente;
Otro
{ srand((int)time(0));? temp = rand();
if(temperatura 2 == 0)
{ if((temp 4 p- gt; y Max _ Blank-Grade) lt; 21)p ->y = p-gt;y temp 4;
si no p-gt;y = p-gt;y;p->x = p-gt;prioridad-gt;x distancia ; p>
p->;l_blank = Max_blank-Grade;
}
Otro
{ if((p - gt;y temperatura 4) >2)p->y = p- gt;y temperatura 4;
si no p- gt;y = p- gt;y;p->x = p- gt;prioridad-gt;x distancia;
p->;l_blank = Max_blank-Grade;
}
}
}
}
¿Anular Prt_Bg(Bg *q)? //Imprime el obstáculo (salida según sus coordenadas X e Y)
{ Bg * p = q; int i = 0, k, j
And ( I lt; ; = 5)
{ if(p- gt;x gt0 amp ampp->;x lt= 78)
{ for(k = 2;k ltp->;y ; k ){ Posición(p->x 1,k);printf("■");printf("■");printf(" ");}
Posición(p->x, p- gt;y);
printf("■");printf("■");printf("■");printf(" ");
Posición ( p->; x, p- gt; y p- gt;
printf("■");
k = k p- gt ; l_blank 1;
for(k;k lt= 23;k){ Posición(p->;x 1,k);printf("■");printf("■");printf (" ");}
}
p = p- gt; siguiente
If (p->;x == 0)
{ for (j = 2;j ltp->;y;j){ Posición(p->;x 1 , j); printf(" ");}
Posición (p->; x 1, p->y);
printf(" " ); printf(" "); printf(" "); Posición (p->; x 1, p->y Max _ grado-en blanco);
printf( " "); printf(" "); p>j = j Max _ en blanco-Grado 1;
/p>
for(j;j lt= 22;j){ Posición(p->;x 1,j);printf(" ");printf(" ");}
}
}
}
¿Anular PrtBird()? //Imprime el pájaro
{Position(bird-gt; x, bird-gt;y-1); printf(" ");
Position(bird->; x, pájaro - gt; y); printf ("ю");
Posición (38, 2); printf ("Puntuación: d ", puntuación
}
¿void Loop_Bg(Bg *q)? //Mueve la coordenada X del obstáculo hacia la izquierda y registra el resultado.
{ Bg * p = q; int I = 0;
Y (I lt; = 5)
{ p->; gt;x-1;p = p- gt;next;
if (bird-gt; /p>
if (puntuación 4 = = 0 amp amp nivel lt4) nivel;
}
}
}
int main()
{ int I = 0 int ; p>
mientras (1)
{
csh() ;PrFK();creat BG();
insertar BG(BG 1) ; insertar BG(BG 1); insertar BG(BG 1);
creat bird();
mientras (1)
{if (!CheckYN) (BG 1))romper;
comprobar _ Bg(Bg 1);
PRT pájaro();
bird-gt;y=bird-gt;y 1;
if (GetAsyncKeyState(VK_UP))? //Presione la tecla de flecha hacia arriba.
{posición(bird-gt;x,bird-gt;y-1);printf(" ");
bird-gt;y=bird-gt;y- 4;
}
Dormir(200);? //Retraso del programa 200 ms (el valor determina la velocidad del juego)
I = 0
}
Posición (6, 25
);Printf("¡¿Se acabó el juego? Ingrese: 0. ¿Salir? 1. Jugar de nuevo");
scanf("d ", ampt); = = 0)descanso;
Sistema("cls"); puntuación = 0;
}
Devuelve 0;
}