Actualización de «Sopa de letras»
He actualizado las soluciones del ejercicio Sopa de letras cuyo enunciado es
Las matrices se puede representar mediante tablas cuyos índices son pares de números naturales:
type Matriz a = Array (Int,Int) a
Definir la función
enLaSopa :: Eq a => [a] -> Matriz a -> Bool
tal que (enLaSopa c p) se verifica si c está en la matriz p en horizontal o en vertical. Por ejemplo, si ej1 es la matriz siguiente:
ej1 :: Matriz Char ej1 = listaMatriz ["mjtholueq", "juhoolauh", "dariouhyj", "rngkploaa"]
donde la función listaMatriz
está definida por
listaMatriz :: [[a]] -> Matriz a listaMatriz xss = listArray ((1,1),(m,n)) (concat xss) where m = length xss n = length (head xss)
entonces,
enLaSopa "dar" p == True -- En horizontal a la derecha en la 3ª fila enLaSopa "oir" p == True -- En horizontal a la izquierda en la 3ª fila enLaSopa "juan" p == True -- En vertical descendente en la 2ª columna enLaSopa "kio" p == True -- En vertical ascendente en la 3ª columna enLaSopa "Juan" p == False enLaSopa "hola" p == False