27/07/2008, 23:54
|
| | Fecha de Ingreso: junio-2008
Mensajes: 63
Antigüedad: 16 años, 6 meses Puntos: 2 | |
Respuesta: Como Crear Decodificador de mensajes Podrías recorrer la cuadricula como si se tratase de una persona caminando sobre un plano, usando una variable indicadora de dirección para dirigirla, digamos que la variable de dirección se llama dir, y que sus valores serán 0, 1, 2 y 3 donde 0=derecha, 1=abajo, 2=izquierda, 3=arriba, y la cadena que deseas introducir en la matriz es "ABCDEFGHIJKLMNOP" y la matriz tiene un tamaño de 4 x 4:
Primero inicias la matriz a ceros y comienzas desde el punto x=0 y=0 recorriendo la matriz hacia la derecha ( dir=0 )
las normas serían:
si se llega a algún margen de la matriz se cambia de dirección.
si se llega a un punto donde el siguiente elemento de la matriz es distinto de cero se cambia de dirección.
los cambios de dirección se harán de la siguiente forma:
si dir==0 y se llega a un tope dir=1
si dir==1 y se llega a un tope dir=2
si dir==2 y se llega a un tope dir=3
si dir==3 y se llega a un tope dir=0
Primer paso recorriendo hacia la derecha sumando a x (dir==0):
vas colocando los caracteres A B C D uno por uno:
ABCD Se ha llegado al margen derecho de la matriz se cambia dir a 1
0000
0000
0000
Segundo paso ahora recorriendo hacia abajo sumando a y (dir==1):
se coloca E F G:
ABCD
000E
000F
000G Se ha llegado al margen inferior de la matriz se cambia dir a 2
Tercer paso recorriendo hacia la izquierda restando a x (dir==2):
se coloca H I J:
ABCD
000E
000F
JIHG Se ha llegado al margen izquierdo de la matriz se cambia dir a 3
Cuarto paso recorriendo hacia arriba restando a y (dir==3)
se coloca K L:
ABCD
L00E En este punto el siguiente es A distinto de 0 se cambia dir a 0
K00F
JIHG
Finalmente quedaría:
ABCD
LMNE
KPOF
JIHG
Me parece que esta forma es muy simple de aplicar, solo tendrás que usar un for, while, o lo que mejor te parezca, para recorrer la cadena de texto, un par de variables ( x y ) para moverte en la matriz, la variable de dirección, y algunos if para ir cambiando de dirección e ir recorriendo la matriz. |