Red de conocimiento informático - Computadora portátil - Códigos interesantes para la programación en lenguaje C

Códigos interesantes para la programación en lenguaje C

Aprenda la codificación en lenguaje C de "pushbox";

# include & ltstdio.h & gt

# include & ltconio.h & gt

# include & ltstdlib.h & gt

# include & ltwindows.h & gt

int m = 0;? // ¿Qué nivel representa m?

Mapa de estructura { short a[9][11];};

Mapa de estructura [5]={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,? //***5 niveles, 9 líneas por nivel.

0,1,1,1,1,1,1,1,0,0,0,

0,1,0,0,0,0,0, 1,1,1,0,

1,1,4,1,1,1,0,0,0,1,0, ?//0 espacio abierto, 1 pared

? 1,5,0,0,4,0,0,4,0,1,0, ?//4 es la caja y 5 es la persona.

1,0,3,3,1,0,4,0,1,1,0, ?//3 es el destino

1,1,3,3 ,1,0,0,0,1,0,0, ?//7 significa que el cuadro está en el destino (4+3)

0,1,1,1,1,1, 1, 1,1,0,0, ?//8 es la persona en el destino (5+3)

? 0,0,0,0,0,0,0,0,0,0,0,

? 0,0,0,0,0,0,0,0,0,0,0,

0,0,1,1,1,1,0,0,0,0,0 ,

0,0,1,5,0,1,1,1,0,0,0,

0,0,1,0,4,0,0 ,1,0,0,0,

? 0,1,1,1,0,1,0,1,1,0,0,

0,1,3,1,0,1,0,0,1,0,0 ,

0,1,3,4,0,0,1,0,1,0,0,

0,1,3,0,0,0,4 ,0,1,0,0,

? 0,1,1,1,1,1,1,1,1,0,0,

? 0,0,0,0,0,0,0,0,0,0,0,

0,0,0,1,1,1,1,1,1,1,0 ,

0,0,1,1,0,0,1,0,5,1,0,

0,0,1,0,0,0,1 ,0,0,1,0,

? 0,0,1,4,0,4,0,4,0,1,0,

0,0,1,0,4,1,1,0,0,1,0 ,

1,1,1,0,4,0,1,0,1,1,0,

1,3,3,3,3,3,0 ,0,1,0,0,

? 1,1,1,1,1,1,1,1,1,0,0,

? 0,1,1,1,1,1,1,1,1,1,0,

0,1,0,0,1,1,0,0,0,1,0 ,

0,1,0,0,0,4,0,0,0,1,0,

0,1,4,0,1,1,1 ,0,4,1,0,

? 0,1,0,1,3,3,3,1,0,1,0,

1,1,0,1,3,3,3,1,0,1,1 ,

1,0,4,0,0,4,0,0,4,0,1,

1,0,0,0,0,0,1 ,0,5,0,1,

? 1,1,1,1,1,1,1,1,1,1,1,

? 0,0,0,0,0,0,0,0,0,0,0,

0,0,0,1,1,1,1,1,1,0,0 ,

0,1,1,1,0,0,0,0,1,0,0,

1,1,3,0,4,1,1 ,0,1,1,0,

? 1,3,3,4,0,4,0,0,5,1,0,

1,3,3,0,4,0,4,0,1,1,0 ,

1,1,1,1,1,1,0,0,1,0,0,

0,0,0,0,0,1,1 ,1,1,0,0,

? 0,0,0,0,0,0,0,0,0,0,0 };

¿Anular DrMap()? //Dibujar un mapa

{Console_Cursor_Information Cursor_Information={1, 0}; //Ocultar configuración del cursor

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_ HANDLE), & ampcursor_info);

Printf("\n\n \t\t\bpush box");

printf("\n\t") ;

for(int I = 0 ;i<9;i++)

{ para(int j = 0;j<11;j++)

{Switch(mapping[m].a[i][j])

{Caso 0:? printf("?);Descanso;

Caso 1:?printf("■");Descanso;

Caso 3:?printf("◎";Descanso;

Caso 4:? printf("□"); break;

Caso 5:? printf("♂"; break; //5 es una persona

7 :? printf("□"); //4+3 cajas están en el destino

Caso 8:? printf("♂"; //Destino 5+3 personas

}

}

printf(" \ n \ t ");

}

}

void gtxy(int x, int y)? //Función para controlar la posición del cursor

{ COORD coord

Coordenadas. SetConsoleCursorPosition(GetStdHandle(STD _ OUTPUT _ HANDLE), coord);

}

void start()? Juego

{ int r, c; r, c se utiliza para registrar el subíndice de una persona

for(int I = 0; i<9;i++)

{ for(int j = 0; j & lt11;j++ )

{if (mapa[m].a[I][j]= = 5 | |mapa[m]. a[I][j]= = 8){ r = I;? c = j;}} //i j subíndice

tecla char;? /p>

clave = getch();

Cambiar (tecla)

{Caso 'W':

Caso "w":

Caso 72:

if(map[m].a[r - 1][ c] == 0||map[m].a [r - 1][c ] == 3)

{ gtxy(2*c+8, r-1+3); "♂";? // gtxy(2*c+8, r-1+3 ) es el carácter que se envía a la posición especificada

? c] == 5){gtxy(2*c+8, r+3); printf ("?);}

?if(mapping[m].a[r][c] = = 8){gtxy(2*c+8, r+3);printf("◎ ";}

?Map[m].a[r-1][c]+= 5; ? mapa[m]. a[r][c]-= 5;}

¿Y si? if(mapa[m].a [r - 1][c] == 4 ||mapa[m].a [r - 1][c] == 7)

? { if (mapa[m].a [r - 2][c] == 0 || mapa[m].a[r-2][c]= 3)

{ gtxy(2 *c+8, r-2+3); printf("□"); gtxy(2*c+8, r-1+3); printf("♂";

?if( Mapeo [m].a[r ][c] == 5){gtxy(2*c+8, r+3); printf("?);}

?if (mapeo [m]. ].a[r ][c] == 8){gtxy(2*c+8,r+3);printf("◎";}

?Map[m].a[r -2][c]+= 4;? mapa[m]. a[r-1][c]+= 1;

Mapa[m].

a[r][c]-= 5;}

}Roto;

Caso:

Caso:

Caso 80:

if(mapa[m].a [r + 1][c] == 0 ||mapa[m].a [r + 1][c] == 3)

{ gtxy(2*c+8, r+1+3); printf("♂";

if(mapeo[m].a[r][c] == 5) {gtxy(2*c+8, r+3); printf("?);}

?if (mapeo[m].a[r][c] == 8){gtxy( 2*c+8, r+3); printf("◎";}

?Mapa[m]. a[r+1][c]+= 5;?Mapa[m]. a[r][c]-= 5;}

si no (mapa[m].a [r + 1][c] == 4 ||mapa[m].a [r+ 1 ][c] == 7)

{ if (mapa[m].a [r + 2][c] == 0 ||mapa[m].a [r + 2][c ] == 3)

? { gtxy(2*c+8, r+2+3); printf("□"); ;printf("♂";

if(mapping[m].a[r][c] == 5){gtxy(2*c+8, r+3);printf("? );}

? if(mapping[m].a[r][c] == 8){gtxy(2*c+8, r+3);printf("◎";}

? mapa[m].a[r+2][c]+= 4; mapa[m].a[r][c]-= 5;}

}Roto;

Caso "A":

Caso "a"”:

Caso 75:

if(mapa[m].a [r][c - 1] == 0 ||mapa[m].a [r ][ c - 1] == 3)

{ gtxy (2*(c-1)+8, r+3); printf("♂";

if(mapa [m].a[r ][c] == 5){gtxy( 2*c+8, r+3);printf("?);}

?if(mapping[m] .a[r ][c] == 8){gtxy(2*c +8,r+3);printf("◎";}

Mapa[m].a[r][ c-1]+= 5; mapa[m]. a[r][c]-= 5;}

else if (mapa[m].a [r][c - 1] == 4 ||mapa[m].a [r] [c - 1] == 7)

? {if (mapa[m].a [r ][c - 2] == 0 || mapa[m].a [r ][c - 2] == 3)

{ gtxy( 2*(c-2)+8, r+3); printf("□"); gtxy(2*(c-1)+8, r+3); p>? if (mapping[m].a[r][c] == 5){gtxy(2*c+8, r+3); if(map[m].a[r][c] == 8){gtxy(2*c+8, r+3);printf("◎";}

?map[m ]. a[r][c-2]+= 4; mapa[m]. a[r][c-1]+=

?

a[r][c]-= 5;}

}Roto;

Caso "D":

Caso "d":

Caso 77:

if(mapa[m].a [r][c + 1] == 0 ||mapa[m].a [r][c + 1] == 3)

{ gtxy(2*(c+1)+8, r+3; printf("♂";

if(mapa[m].a[r); ][c] == 5){gtxy(2*c+8, r+3); printf("?);}

if (mapeo [m].a[r ][c] == 8) {gtxy(2*c+8, r+3); printf("◎";}

?Mapa[m].a[r][c+1]+= 5 ;? mapa[m].a[r][c]-= 5;}

?else if (mapa[m].a[r][c + 1] == 4 || [ m].a [r][c + 1] == 7)

? { if (mapa[m].a [r][c + 2] == 0 ||mapa[m] ]. a [r][c + 2] == 3)

{ gtxy(2*(c+2)+8, r+3); *(c+1)+8, r+3);printf("♂";

?if(mapping[m].a[r][c] == 5){gtxy(2 *c+8, r+3);printf("?);}

?if (mapeo[m].a[r][c] == 8){gtxy(2*c+ 8 , r+3); printf("◎";}

? Mapa[m].a[r][c+2]+= 4; Mapa[m].a[r][ c +1]+= 1;

? Mapa[m]. a[r][c]-= 5;}

}Roto;

}

}

int ifwan()? //¿Está completo (1 es 0 y no)

{ if(m==0){if( mapa[m].a[5][2]= = 7 && mapa[m].a[5][3]== 7&&

? = 7 && mapa[m]. a[6][3]==7) devuelve 1;}

if(m== 1){if(mapa[m].a[5][ 2]= = 7 &&& mapa[m].a[6][2]= = 7 &&&

? mapa[m]. a[7][2]==7) devuelve 1;}

if(m==2){if(map[m].a[7][1]== 7 & amp; & amp mapa[m]. a[7][2]= = 7 & amp;& mapa[m]. 7][5]==7) devuelve 1; }

if(m ==3){if(mapa[m].a[4][4]== 7 &&& mapa[m] .a[4][5]== 7 &&map[m ]. a[4][6]= = 7&&map[m]. m]. [5][5]== 7&&map[m]. a[5][6]==7) devuelve 1;}

if(m==4){if ( mapa[m].a[3][2]= = 7 && mapa[m]. a[4][1]== 7&& mapa[m].

a[4][2]= = 7&&

Mapa[m]. a[5][1] = = 7&&mapa[m]. a[5][2]==7) devuelve 1;}

Devuelve 0;

}

int main()? //Función principal

{ while (1)

? { sistema(" cls ");

dr map();

mientras (1)

{ inicio();

? if(if wan()){ printf(" \ 007 "); break } // Toca el timbre cuando termine.

? }

m+= 1;

}

? Devuelve 0;

}