Código fuente del muro de palabras
# 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) p>
{ 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;
}