Red de conocimiento informático - Material del sitio web - Cómo escribir juegos usando C

Cómo escribir juegos usando C

Uso de C para escribir juegos:

Este es un juego de serpientes que vi en Baidu

#includelt;iostream.hgt;

#includelt;windows.hgt;

#includelt;time.hgt;

#includelt;stdlib.hgt;

#includelt;conio.hgt ;

#define N 21

void gotoxy(int x, int y)//Función de posición

{

COORD pos

p>

pos. p>}

color vacío(int a)//función de color

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), a );

}

void init(int apple[2])//Función de inicialización (muro de inicialización, información de visualización, Apple)

{

int i, j; //Inicializar muro

int wall[N 2][N 2]={{0}};

for(i=1; ilt; =N; i)

{

for(j=1;jlt;=N;j)

pared[i][j]= 1;

}

color(11);

for(i=0;ilt;N 2;i)

{

for(j=0;jlt;N 2;j)

{

if(pared[i][j])

coutlt;" ■";

else coutlt; "□"

}

coutlt; >

}

gotoxy(N 3, 1); //Mostrar información

color(20);

coutlt;lt; "Presione W S A D dirección de movimiento"lt;lt; endl;

gotoxy(N 3, 2);

color(20);

coutlt;lt;"Presione cualquier tecla para pausar"lt;lt; endl;

gotoxy(N 3, 3);

color(20);

coutlt;lt;"Puntuación :"lt;lt;endl;

manzana[0]=rand()N 1; //Manzana

manzana[1]=rand()N 1;

gotoxy(manzana[ 0], manzana[1]);

color(12);

coutlt;lt;"●"lt;lt;endl;

}

int main()

{

int i, j

int** serpiente= NULL;

int manzana[2];

int puntuación=0;

int cola[2];

int puntuación= 0;

int cola[2];

p>

int len=3;

char ch='p';

srand((unsigned)time(NULL));

init (manzana);

serpiente=(int**)realloc(serpiente, tamañode(int*)*len);

for(i=0;ilt;len;i)

serpiente[i]=(int*)malloc(sizeof(int)*2);

for(i=0;ilt;len;i)

{

serpiente[i][0]=N/2;

serpiente[i][1]=N/2 i;

gotoxi (serpiente[i][0], serpiente[i][1]);

color(14);

coutlt;lt;"★"lt;lt;endl;

}

while(1)//Ingresa al bucle de mensajes

{

tail[0]=snake[len-1 ] [0];

cola[1]=serpiente[len-1][1];

gotoxy(cola[0], cola[1]);

color(11);

coutlt;lt;"■"lt;lt;endl;

for(i=len-1;igt;0;i- - )

{

serpiente[i][0]=serpiente[i-1][0];

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

gotoxy(serpiente[i][0], serpiente[i][1]);

color(14);

coutlt;lt;"★"lt;lt;endl;

}

if(kbhit())

{

gotoxy(0, N 2);

ch=getche();

}

interruptor(ch)

{

caso 'w': serpiente[0][1]--; romper;

caso 's': serpiente[0][1];

caso 's': serpiente[0][1]; p >

caso 'a': serpiente[0][0]--; ruptura;

caso 'd': serpiente[0][0];

predeterminado: romper;

}

gotoxy(serpiente[0][0], serpiente[0][1]); ;

coutlt;lt;"★"lt;lt;endl;

Dormir(abs(200-0.5*puntuación));

if(serpiente) [ 0][0]==apple[0]amp;amp;snake[0][1]==apple[1])//Después de comer la manzana, la puntuación de la serpiente aumentará en 1 y la longitud de la serpiente se incrementará en 1

{

score;

len

snake=(int**)realloc(snake, sizeof; (int*)*len);

serpiente[len-1]=(int*)malloc(tamañode(int)*2);

manzana[0]=rand( )N 1;

a

pple[1]=rand()N 1;

gotoxy(manzana[0], manzana[1]);

color(12);

coutlt;lt;"●"lt;lt;endl;

gotoxy(N 5, 3);

color(20);

coutlt;lt ;scorelt;lt;endl;

}

if(serpiente[0][1]==0||serpiente[0][1]==N||serpiente[ 0][0]==0||snake[0][0]==N)//Error después de golpear la pared

{

gotoxy(N/2, N /2);

color(30);

coutlt;lt;"Se acabó el juego"lt;lt;endl;

for(i=0; ilt; len; i )

libre(serpiente[i]);

Dormir(INFINITO);

salir(0);

}

}

devuelve 0;

}