Sopa de letras
De Ejercicios
Contenido |
Enunciado
Se desea hacer un algoritmo para resolver si se encuentra o no una palabra en una sopa de letras. Para ello habrá que disponer de una matriz de NxN dónde se encontrará la sopa de letras y además un vector de M elementos dónde se encontrará la palabra a buscar. Las estructuras que se necesitan se muestran a continuación:
- sopa: Array bidimensional de caracteres
1 2 3 ... ... ... n +--------------------------- 1 | A Q A Z P V A 2 | Z I X N S L B 3 | X A R T O J F ...| D I R A R A T ...| R D Q Ñ A Y I ...| E T T J G N L ...| D R A H U B X ...| I N O T A R P ...| L R W O O Y T n | O S N A V N I
- buscar: Array de caracteres
1 2 3 ... m ------------------- R A T O N
Para resolver este problema habrá que realizar los siguientes subalgoritmos:
Apartado a
Realizar un subalgoritmo que lea un array de caracteres. En el subalgoritmo, el usuario irá insertando caracteres y cuando introduzca un punto ('.') se terminará de leer. El resultado será un array como el de la figura (array buscar), donde se encuentra una palabra, y un número indicando el tamaño de dicha palabra. El punto no se considera para el tamaño.
Apartado b
Realizar un subalgoritmo que compruebe si la palabra se encuentra en horizontal. Habrá que comprobar si se encuentra leyendo de izquierda a derecha. Se dará como entrada un array bidimensional con la sopa de letras, su tamaño, el array con la palabra a buscar y el tamaño de la palabra. Si se encuentra la palabra se devolverá Verdadero y sino se devolverá Falso.
Apartado c
Termina de rellenar el código del algoritmo principal que se indica a continuación de forma que se pida al usuario jugar tantas veces como quiera. Utiliza los subalgoritmos que has generado en los apartados anteriores.
ALGORITMO SopaDeLetras ENTRADAS: sopa: ARRAY (1..100,1..100) DE CARACTERES n: ENTERO (* tamaño de la sopa *) buscar: ARRAY (1..100) DE CARACTERES m: ENTERO (* tamaño de la palabra a buscar *) SALIDAS: (* mensaje de si se encuentra o no las palabras buscadas *) VARIABLES: op: CARACTER (* valor para saber si deseamos continuar jugando *) INICIO LeerSopa (sopa, n) (* Aquí ya hemos inicializado una matriz sopa cualquiera *) REPETIR ESCRIBIR "Introduzca palabra a buscar:" //PON TU CÓDIGO AQUÍ PARA leer la palabra que queremos buscar //PON TU CÓDIGO AQUÍ PARA buscar si está la palabra en la sopa en horizontal e indicar por mensaje si esta o no ESCRIBIR "¿Desea seguir jugando? (S/N)" LEER op HASTA ( (*PON TU CÓDIGO AQUÍ*) ) FIN