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; >
} p>
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); p >
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;
}