Red de conocimiento de abogados - Derecho de sociedades - Código de juego en lenguaje C

Código de juego en lenguaje C

El código Snake más básico

#includelt; stdio.hgt;

#includelt; // Definición de tipo básico. Admite funciones de definición de tipo. Funciones de la interfaz de usuario Funciones de la interfaz del dispositivo gráfico.

#includelt; conio.hgt; // La operación correspondiente generada por el usuario presionando el teclado (consola)

#stdlib.hgt; ># includelt; time.hgt; //Archivo de encabezado de fecha y hora

#define LEN 30

#define WID 25

int Snake[LEN][ WID] = {0}; //Los elementos de la matriz representan varias partes de la serpiente

char Sna_Hea_Dir = 'a' //Registra la dirección de movimiento de la cabeza de la serpiente

int Sna_Hea_X, Sna_Hea_Y; // Registra la posición de la cabeza de la serpiente

int Snake_Len = 3; // Registra la longitud de la serpiente

clock_t Now_Time; tiempo de movimiento automático

int Wait_Time ; //Registra el intervalo de tiempo de movimiento automático

int Eat_Apple = 1 //Comer una manzana se representa como 1

int Level;

int All_Score = - 1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); de salida estándar lt; windows.hgt;

//Manejar: marca diferentes objetos en la aplicación y diferentes instancias de objetos similares para facilitar la manipulación,

void gotoxy(int x, int y)//Establecer la posición del cursor

{

COORD pos = {x, y} //Definir la coordenada POS de un personaje en la pantalla de la consola

SetConsoleCursorPosition(hConsole, pos); // Localizar la posición del cursor Función lt; windows.hgt;

}

void Hide_Cursor()//Ocultar función fija del cursor

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, amp; cursor_info

}

<); p>void SetColor(int color)//Establecer color

{

SetConsoleTextAttribute(hConsole, color);

//Es el formato de función de API para establecer el color de fuente y el color de fondo: SetConsoleTextAttribute(handle, color);

}

void Print_Snake()//Imprime la cabeza, el cuello y la cola de la serpiente

{

int iy, ix, color;

p>

for(iy = 0; iy lt; WID; iy)

for(ix = 0 ; ix lt; LEN; ix)

{

if(Serpiente[ix][iy] == 1)//Cabeza de serpiente

{

SetColor(0xf); //oxf representa la dirección de memoria asignada setcolor: 34 líneas de función de configuración de color personalizada

gotoxy(ix*2, iy);

printf("※");

}

if(Snake[ix][iy] == 2)//Cuello de serpiente

{

color = rand()15 1; //la función rand() es una función aleatoria que genera números aleatorios. También existen funciones srand() en lenguaje C.

//Archivo de encabezado: stdlib.h

if(color == 14)

color -= rand() 13 1 //Cambiar color< / p>

SetColor(color);

gotoxy(ix*2, iy

printf("■"); / p>

if(Snake[ix][iy] == Snake_Len)

{

gotoxy(ix*2, iy);

SetColor (0xe);

printf("≈");

}

}

}

void Clear_Snake()//Borra la serpiente codiciosa

{

int iy, ix;

for(iy = 0; iy lt; WID; iy)

for(ix = 0; ix lt; LEN; ix)

{

gotoxy(ix*2, iy);

if(Serpiente[ix][iy] == Serpiente_Len)

printf(" ");

}

}

void Rand_Apple()//Generar manzanas aleatoriamente

{

int ix, iy

do

{

<; p> ix = rand() LEN;

iy = rand() WID

} while(Serpiente[ix][iy]); [ix][iy] = -1;

gotoxy(ix*2, iy

printf("⊙"); ;

}

void Game_Over()//La serpiente está muerta

{

gotoxy(30, 10);

p>

printf("Juego terminado");

Dormir(3000

system("pausa gt; nul"); >

exit (0);

}

void Move_Snake()//Deja que la serpiente se mueva

{

int ix, iy;

for(ix = 0; ix lt; LEN;

ix)//Marca primero la cabeza de la serpiente

for(iy = 0; iy lt; WID; iy)

if(Snake[ix][iy] == 1)

{

switch(Sna_Hea_Dir)//Marque la cabeza de la serpiente de acuerdo con la nueva dirección de la cabeza de la serpiente

{

case 'w' :

if(iy == 0)

Game_Over();

else

Sna_Hea_Y = iy - 1; >

Sna_Hea_X = ix;

romper;

caso 's':

if(iy == (WID -1))

Game_Over( );

else

Sna_Hea_Y = iy 1;

Sna_Hea_X = ix

descanso

p>

caso 'a':

if(ix == 0)

Game_Over()

else

; Sna_Hea_X = ix - 1;

Sna_Hea_Y = iy;

romper

caso 'd':

if(ix == (LEN - 1))

Game_Over();

else

Sna_Hea_X = ix 1

Sna_Hea_Y =

iy;

descanso

predeterminado:

descanso

}

}

if(Serpiente[Sna_Hea_X][Sna_Hea_Y]!=1amp;amp;Serpiente[Sna_Hea_X][Sna_Hea_Y]!=0amp;amp;Serpiente[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over ();

if(Snake[Sna_Hea_X][Sna_Hea_Y] lt; 0)//Come la manzana

{

Snake_Len;

Eat_Apple = 1;

}

for(ix = 0; ix lt; LEN; ix)//Manipulación de cola de serpiente

for(iy = 0 ; iy lt; WID; iy)

{

si(Serpiente[ix][iy] gt; 0)

{

if(Serpiente[ix][iy] != Serpiente_Len)

Serpiente[ix][iy] = 1

else

Serpiente[ix] ] [iy] = 0;

}

}

Serpiente[Sna_Hea_X][Sna_Hea_Y] = 1 //Maneja cabezas de serpiente

}

void Get_Input()//Controla la dirección del movimiento de la serpiente

{

if(kbhit())

{

p>

switch(getch())

{

caso 87:

Sna_Hea_Dir = 'w' ;

ruptura ;

caso 83:

Sna_Hea_Dir = 's';

ruptura

caso; 65:

Sna_Hea_Dir = 'a';

descanso;

caso 68:

Sna_Hea_Dir = 'd'; >

descanso;

predeterminado:<

/p>

break;

}

}

if(clock() - Now_Time gt; = Wait_Time)//La serpiente caminará automáticamente cuando llegue el momento

{

Clear_Snake();

Move_Snake()

Print_Snake(); p> Now_Time = reloj();

}

}

void Init()//Inicialización

{

system ("título Serpiente peluda codiciosa");

system("mode con: cols=80 líneas=25");

Hide_Cursor();

gotoxy(61, 4);

printf("Tu puntuación: ");

gotoxy(61, 6);

printf(" Tu nivel:" ");

gotoxy(61, 8);

printf("La longitud: "); ;

printf("La velocidad: ");

gotoxy(61, 12

printf("Apple Num:

int i;

for(i = 0; i lt; Snake_Len; i)//Generar serpiente

Snake[10 i][15] = i 1;

int iy, ix; // imprime serpiente

for(iy = 0; iy lt; WID; iy)

for(ix = 0; ix lt; LEN; ix)

{

if(Serpiente[ix][iy])

{

SetColor(Serpiente[ ix][iy ]);

gotoxy(ix*2, iy);

printf("■"); p> }

}

void Pri_News()//Imprimir información

{

SetColor(0xe);

gotoxy (73, 4);

All_Score = Nivel;

printf("3d", All_Score); ;

printf("3d", Nivel);<

/p>

gotoxy(73, 8);

printf("3d", Serpiente_Len

gotoxy(73, 10); printf("0.3ds", Wait_Time/10);

gotoxy(73, 12);

printf("d", Apple_Num);

void Lev_Sys()//Sistema de niveles

{

if(((Apple_Num-1) / 10) == Nivel)

{

Nivel;

if(Wait_Time gt; 50)

Wait_Time -= 50

else

if(Wait_Time gt; 10)

Wait_Time -= 10

else

Wait_Time -= 1;

}

int main(void)

{

Init();

srand((sin firmar )time(NULL)); //Establece la semilla del número aleatorio

Now_Time = clock();

int speed1=1000, speed2, a;

printf("\n");

printf("Ingrese la velocidad que desea\n");

scanf("d", amp; speed2);

p>

Nivel=1;

Wait_Time=speed1-speed2;

printf("Ingrese la cantidad de manzanas que desea\n"); p>

scanf("d", amp; a);

while(a--)

Rand_Apple();

while(1). )

{

if(Eat_Apple)

{

Apple_Num

Rand_Apple(); p>

Lev_Sys();

Pri_News();

}

Get_Input();

Dormir(10) ;

p>

}

devuelve 0;

}