Red de conocimiento informático - Conocimiento informático - Código fuente interactivo del subprograma

Código fuente interactivo del subprograma

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 la casilla 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\bCaja de inserción");

>

printf(" \ n \ t ");

for(int I = 0; i lt9; i )

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

{switch(map[m].a[i][j])

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

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

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

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

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

7 :? printf("□"); //4 3 cajas en 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 Y = y

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

}

void start()? //Iniciar el juego

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

for(int I = 0; i lt9; i)

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

{if (mapa[m].a[I][j]= = 5 | |mapa[m].a[I] [j]= = 8){ r = I;? }} //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); printf("♂";?// gtxy(2) *c 8, r-1 3) es la salida del carácter a la posición especificada

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

?if(map[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("□"); 3);printf("♂";

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

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

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

[m]. [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(map[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;}

else 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)

? 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(mapping[m]. a[r ][c] = = 8){gtxy(2*c 8, r 3);printf("◎";}

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

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

}Roto;

Caso. "A":

Caso "a":

Caso 75:

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

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

if(map[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 (map[m].a [r][c - 1] == 4 ||map[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); 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][c -2] = 4; mapa[m]. a[r][c-1] = 1;

? >Caso "D":

Caso "d":

Caso 77:

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

{ gtxy(2*(c 1) 8, r 3);

if (mapeo [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("◎" ;}

? map[m] . a[r][c] = 5;? mapa[m]. >? else if (mapa[m].a [r][c 1] == 4 ||mapa[m].a [r][ c 1] == 7)

? (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);

?if (mapeo [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("◎";}

?map[ 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(map[m].a[5][2]== 7 amp; amp map[ m ]. a[5][3]= = 7 amperios

? a[6][2]= = 7 amperios [3]==7) ;}

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

?map[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 amperios mapa[m]. ; amp map[m]. a[7][5]==7) devuelve 1;}

if(m==3){if(map [m].a[4][4] ]= = 7 amperios mapa[m]. a[4][5]= = 7 amperios mapa[m]. 4]= = 7 amp; ampMap[m]. a[5][5]= 7 amp; ampMap[m] . if(m==4){if(mapa[m].a[3][2]== 7 amperios; mapa de amperios[m]. a[4][1]== 7 amperios; mapa de amperios[m] . amp

Mapa a[m]. [5][1]== 7 amp; mapa de amp[m]. >

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;

}