Releases: berracode/mips-sopaletra
Version 1.0.2
Se agrega funcionalidad para movernos en el eje vertical y poder buscar palabras hacia a arriba o hacia a abajo.
Se realizan pequeños test con la sopa de letras de 100x100 siguiente: https://github.com/QuantumInformatik/mips-sopaletra/blob/master/archivos/sopaJava.txt
Además se corrige funcionalidad para finalizar el programa mediante interacción con el usuario.
Los registros $t6
y $t7
juegan un papel importante a la hora de movernos sea en el eje X o Y.
El registro $t7
guarda el valor o el coeficiente de movimiento horizontal, es decir, cuantas posiciones debemos movernos hacia la izquierda o derecha para encontrar un carácter diferente al 32 (espacio, quien delimita las columnas). Se asume que no se limpiaran los espacio de la sopa de letras por tanto addi $t7, $zero, 2
y siendo $t7
un valor constante.
El registro $t6
guarda el valor o el coeficiente de movimiento vertical, es decir, cuantas posiciones debemos movernos hacia arriba o hacia a abajo para encontrar un carácter en la misma columna. Este coeficiente se calcula con la siguiente formula:
Sea:
cmv = coeficiente de movimiento vertical
cf = cantidad de caracteres por fila (sin incluir el caracter 32 (espacio) y el caracter 13 (\r) y 10 (\ n))
ce = cantidad de espacio por fila (si cf = 4, entonces ce=cf-1, cf =n, ce=n-1)
s = simbolos de finalización, puede ser \r\n o solo \r o solo \n, se asumen que serán \r\n, por tanto s=2 (considerada constante).
cmv = cf + ce + s -> cf +ce + 2
Entonces si nuestra sopa de letra es de 3 filas x 4 columnas, tenemos que:
cf = 4 (es decir 4 es el número de caracteres por fila)
ce = 4-1 = 3
s = s
cmv = 4+3+2 = 9
Para una sopa de letras de 100x100, sería:
cmv = 100 + 99 +2 = 201
Version 1.0.1
Se agregan mejoras en el movimiento horizontal para buscar palabras en la sopa de letras.
Se agrega un poco más de interacción para mejorar la UX.
Version 1.0.0
El programa en assambly para la resolución de sopas de letras, hasta este punto:
REALIZA
- resuelve sopas de letras en dirección horizontal.
- imprime la fila y columna inicial de la aparición de la palabra buscada en la sopa de letras.
- solicita al usuario más palabras para buscar
NO REALIZA
- validación de que la palabra a buscar tenga una cantidad de caracteres menor o igual a la cantidad de filas o columnas
- no indica la dirección en la que se encuentra la palabra
- no finaliza (parece que se queda en un bucle infinito solicitando palabras)