gay lord
Laboratórios de Algoritmia I
Laboratórios de Informática II
2013/2014
Pretende-se criar uma aplicação na linguagem de programação c que corra no sistema operativo linux (disponibilizado numa máquina virtual para quem precisar) que resolva um puzzle chamado Sopa de Letras.
Definição do problema
Uma sopa de letras é simplesmente uma grelha de letras onde se procuram palavras. Normalmente, essa procura é feita em três direções: horizontal, vertical e diagonal. Começamos numa casa, escolhemos uma direção e andamos várias casas nessa direção. Se as letras que percorrermos formarem uma palavra então descobrimos uma palavra no texto.
A
S
A
S
J
R
M
A
O
E
O
L
S
E
R
R
Movimentos
Podem existir vários tipos de movimentos admissíveis: a sopa de letras tradicional só admite movimentos segundo a mesma direção. Seguindo essa tradição podemos descobrir palavras como AMOR, ROMA, SEM ou MES.
Mas, se utilizarmos o passo de cavalo tal como no tabuleiro de Xadrez, já encontramos palavras como por exemplo as palavras SOS, ROMA ou REALEJO.
Agora imaginemos que nos movemos como uma cobra. Neste caso, o que acontece é que serpenteamos pelo tabuleiro podendo mudar de posição em cada casa para cada uma das oito casas vizinhas por onde passamos. Neste caso, o conjunto de todas as palavras que encontramos inclui palavras como ALMEJAR,
AMORES, ARAMES, MORRERAS ou SEMOLA.
Estes são alguns exemplos de movimentos. É claro que se podem facilmente imaginar mais variantes. Para além disso, pode-se eventualmente considerar o caso de poder passar por cada casa mais do que uma vez.
1
Neste projeto vamos considerar dois tipos de movimentos: o passo do cavalo e o serpentear. Em ambos os casos temos a hipótese de escolher qualquer movimento permitido de cada vez que chegamos a uma casa.
Tarefas
O projecto está dividido em várias tarefas principais:
1. Escrever algumas funções de manipulação de texto que incluem