Red de conocimiento informático - Material del sitio web - ¿Cómo escribir un juego sencillo usando lenguaje C?

¿Cómo escribir un juego sencillo usando lenguaje C?

El lenguaje C es una materia básica que todo estudiante de informática debe aprender. En términos generales, es relativamente aburrido. Entonces, ¿podemos hacerlo más interesante programando algunos juegos pequeños? De esta manera, aprender a programar no será algo difícil y aburrido, se volverá como un juego de computadora, ¿igual de curioso y lleno de cosas? divertido.

Por ejemplo, el juego 2048:

Método/pasos:

#includelt; .hgt;

#includelt;time.hgt;

#includelt;conio.hgt;

#includelt;windows.hgt;

#define TAMAÑO 4

static int puntuación=0;

void putn(int n[][TAMAÑO]);

void getn(int n [ ][TAMAÑO]);

int isempty(int n[][TAMAÑO]);

int isfull(int n[][TAMAÑO]);

void math(int n[][TAMAÑO], char c);

void tow(int n[][TAMAÑO]);

void toa(int n[] [ TAMAÑO]);

void tos(int n[][TAMAÑO]);

void tod(int n[][TAMAÑO]);

//Función principal

int main()

{

int i,j;

int n[TAMAÑO][TAMAÑO]

char c=' ';

for(i=0; ilt; TAMAÑO; i )

{

for( j =0;jlt;TAMAÑO;j )

{

n[i][j]=0;

}

}

printf( "******************************\n"

" ?2048(dXd) ? \n"

" ? control: W/A/S/D \n"

"presiona cualquier tecla para comenzar \n"

"** **********************\n",TAMAÑO,TAMAÑO);

getch();

sistema( "cls");

//n[0][1]=2048;

//n[0][3]=2048 ;

while(1)

{

if(isempty(n))

getn(n);

putn(n);

if(!isempty(n)amp;amp;isfull(n))

descanso;

dormir(200) );

c=getch();

mientras(c!='w'amp;amp;c!='a'amp;amp;c!='s' amp;amp;c!=' d')

c=getch();

math(n, c);

system("cls" );

}

printf(" ?¡Se acabó el juego!\n", puntuación

return 0; /p>

// Función

void putn(int n[][TAMAÑO])

{

int i, j;

>for(i=0; ilt; TAMAÑO; i )

{

for(j=0; jlt; TAMAÑO; j )

printf(" | ");

printf("|\n");

for(j=0;jlt;SIZE;j)

{

if(n[i][j]==0)

printf("| ");

else

printf("| 4d ",n[i][j]);

}

printf("|\n");

for(j=0;jlt ; TAMAÑO; j )

printf("|_____");

printf("|\n");

}

printf("puntuación: d", puntuación);

}

void getn(int n[][TAMAÑO])

{

int a, b;

a=rand()TAMAÑO;

b=rand()TAMAÑO

mientras(n[a][ b]!=0)

{

a=rand()TAMAÑO

b=rand()TAMAÑO

}

n[a][b]=2;

}

int isempty(int n[][TAMAÑO])

{

int i,j,count=0;

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

for(j=0;jlt ; TAMAÑO; j )

if(n[i][j]==0)

recuento ;

recuento de retornos;

}

int isfull(int n[][TAMAÑO])

{

int i, j, count=0

for(i=0; ilt; TAMAÑO; i )

{

for(j=1; jlt; TAMAÑO-1; j )

{

if(n[i][j]==n[i][j 1]||n[i][j]==n[i][j-1])

cuenta;

}

}

for(j=0;jlt;SIZE;j)

{

for(i=1; ilt; TAMAÑO-1; i )

{

if(n[i][j]==n[i 1 ][j]||n[i][j]==n[i-1][j])

cuenta;

}

}

return countgt;0?0:1;

}

void math(int n[][TAMAÑO], char c)

{

interruptor(c)

{

caso 'w':remolque(n);

caso ' a': toa(n);

caso 's': tos(n);

caso 'd': tod(n); p>

p>

predeterminado:;

}

}

remolque nulo(en

t n[][TAMAÑO])

{

int i, j, a

int m[TAMAÑO]

para (a=0; alt; TAMAÑO; a )

m[a]=0

for(j=0; jlt; TAMAÑO; j )

{

para(a=0; alt; TAMAÑO; a )

{

para(i=0; ilt; TAMAÑO-1; i )

{

si(n[i][j]==0)

{

n[i][j] =n[i 1][j];

n[i 1][j]=0;

}

}

}

}

for(j=0;jlt;SIZE;j)

{

for(a=0, i=0; ilt; TAMAÑO; i )

{

if(n[i][j]!=n[i 1][j]amp;amp;n[ i][j]!=0||n[i][j]==2048)

{

m[a ]=n[i][j];

n[i][j]=0;

}

si no(n[i][j]==n[i 1][j ])

{

m[a ]=n[i][j] n[i 1][j];

puntuación =m[a -1];

n[i][j]=0, n[i 1][j]=0;

}

}

for(i=0; ilt; TAMAÑO; i )

{

n[i][j]=m[i];

m[i]=0;

}

}

}

void toa(int n[][TAMAÑO] )

{

int i, j, a;

int m[TAMAÑO]

for(a=0; alt ;TAMAÑO;a)

m[a]=0;

for(i=0;ilt;TAMAÑO;i)

{

for(a=0; alt; TAMAÑO; a )

{

for(j=0; jlt; TAMAÑO-1; j )

{

si(n[i][j]==0)

{

n[i][j]=n[i][ j 1];

n[i][j 1]=0;

}

}

}

}

for(i=0; ilt; TAMAÑO; i )

{

for(a=0, j=0; jlt; TAMAÑO; j )

{

if(n[i][j]!=n[i][j 1]amp;amp;n[i][j]! =0||n[i][j]==2048)

{

m[a ]=n[i][j];

n[i][j]=0;

}

si no(n[i][j]==n[i][j 1])

{

m[a ]=n[i][j] n[i][j 1];

puntuación =m[a-1]; p>

n[i][j]=0, n[i][j 1]=0;

}

}

for(j=0;jlt;SIZE;j)

{

n[i][j]=m[j] ;

m[j]=0;

}

}

}

void tos(int n[][TAMAÑO])

{

int i, j, a

int m[TAMAÑO]

para (a=0; alt; TAMAÑO; a )

m[a]=0;

for(j=TAMAÑO-1;jgt;=0;j--)

{

for(a=TAMAÑO-1; agt; =0; a--)

{

for(i= TAMAÑO-1;igt;0;i--)

{

if(n[i][j]==0)

{

n[i][j]=n[i-1][j];

n[i-1][j]=0;

}

}

}

}

for(j=TAMAÑO-1;jgt;=0;j--) p>

{

for(a=TAMAÑO-1,i=TAMAÑO-1;igt;=0;i--)

{

if(n[i][j]!=n[i-1][j]amp;amp;n[i][j]!=0||n[i][j]==2048)

{

m[a--]=n[i][j];

n[i][j]=0;

}

si no(n[i][j]==n[i-1][j])

{

m [a --]=n[i][j] n[i-1][j];

puntuación =m[a 1];

n[i][ j] =0, n[i-1][j]=0;

}

}

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

{

n[i][j]=m[i];

m[i]=0;

}

}

}

void tod(int n[][TAMAÑO])

{

int i, j, a;

int m[TAMAÑO]

for(a=0; alt; TAMAÑO; a)

m[a]=0;

for(i=TAMAÑO-1;igt;=0;i--)

{

for( a= TAMAÑO-1; agt; = 0; a--)

{

for(j=TAMAÑO-1; jgt; 0; j--)

{

si(n[i][j]==0)

{

n[i][j]=n[i ][ j-1];

n[i][j-1]=0;

}

}

}

}

for(i=TAMAÑO-1;igt;=0;i--)

{

for(a =TAMAÑO -1,j=TAMAÑO-1;jgt;=0;j--)

{

if(n[i][j]!=n[i] [j -1]amp;amp;n[i][j]!=0||n[i][j]==2048)

{

m[a -- ]=n[i][j];

n

[i][j]=0;

}

si no(n[i][j]==n[i][j-1])

{

m[a--]=n[i][j] n[i][j-1];

puntuación =m[a 1];

n[i][j]=0, n[i][j-1]=0

}

}

<; p>for(j=TAMAÑO-1;jgt;=0;j--)

{

n[i][j]=m[j];

m[j]=0;

}

}

}