Safe Haskell | Safe |
---|
Synopsis
- compactcorridor1 :: Corridor -> Instruction
- compactMaze1 :: Maze -> Instructions
- poselem :: Instructions -> Int -> Instruction
- padroesverticais :: Int -> Instructions -> Instructions
- padroesverticais2 :: Int -> Instructions -> Instructions
- acumulador :: Int -> Instructions -> Instructions
- geral :: Instructions -> Instructions
- principal :: Maze -> Instructions
Documentation
compactcorridor1 :: Corridor -> Instruction #
O objetivo da função compactcorridor1 é transformar um corredor, igual ao visualizado na Tarefa 1, em um tipo Instruction fazendo já padrões horizontais, isto é, se tiver peças iguais consecutivas então a função junta-as num único Tuplo, vendo isso através da sua função auxiliar com acumulador.
compactMaze1 :: Maze -> Instructions #
A função compactMaze1 realiza um processo muito semelhante à compactcorridor1 mas faz isso para Labirintos completos utilizando a função compactcorridor como base
poselem :: Instructions -> Int -> Instruction #
A função poselem funciona como função auxiliar da função padroesverticais
padroesverticais :: Int -> Instructions -> Instructions #
Esta função é a base da 3ª parte desta tarefa, ou seja, a parte dos padrões verticais. Assim, a função padroesverticais tem como objetivo verificar se, para uma lista restringida a começar por um elemento numa certa posição, tem corredores iguais a esse, se sim, então faz a respetiva substituição da Instruction.
padroesverticais2 :: Int -> Instructions -> Instructions #
A função padroesveticais2 é uma função auxiliar da função padroesverticais1, que tem como finalidade a mesma da função acima definida.
acumulador :: Int -> Instructions -> Instructions #
A função acumulador é a função responsável por simplificar todo o labirinto utilizando diretamente as funções padroesverticais e poselem.
geral :: Instructions -> Instructions #
A função geral é a que organiza e comanda a parte dos padrões verticais visto que utiliza a função acumulador para fazer as simplificações necessárias até chegar à forma mais compacta do Labirinto.
principal :: Maze -> Instructions #
Esta é a função principal da Tarefa 3, que utilizando todas as anteriores, umas de forma mais notável que outras, concede ao utilizador a forma mais simplificada possivel de um Labirinto.