| Copyright | ALUNO_1_NOME <ALUNO_1_NUMERO@alunos.uminho.pt> ALUNO_2_NOME <ALUNO_2_NUMERO@alunos.uminho.pt> |
|---|---|
| Safe Haskell | None |
| Language | GHC2021 |
Tarefa0_2026
Contents
Description
Módulo que define funções auxiliares específicas do modelo de jogo, úteis na realização do projeto de LI1/LP1 em 2026/27.
Synopsis
- blocoEm :: Posicao -> Mapa -> Maybe Bloco
- atualizaBloco :: Posicao -> Bloco -> Mapa -> Mapa
- eBlocoEscavavel :: Bloco -> Bool
- atualizaEscavadora :: (Escavadora -> Escavadora) -> Jogo -> Jogo
- apoiado :: Jogo -> Bool
- pesoCarga :: Escavadora -> Peso
- valorCarga :: Escavadora -> Creditos
- sofreDano :: Int -> Escavadora -> Escavadora
- edificioEm :: Posicao -> Jogo -> Maybe TipoEdificio
Mapa
blocoEm :: Posicao -> Mapa -> Maybe Bloco Source #
Devolve o bloco numa dada posição do mapa.
NB: Devolve Nothing sempre que a posição não pertence ao mapa. Isso /inclui posições com
coordenadas negativas/ — que ocorrem naturalmente, por exemplo ao tentar subir a partir da
linha 0 ou ao calcular o raio de uma explosão à superfície.
>>>blocoEm (0,0) [[Ar],[Terra]]Just Ar>>>blocoEm (-1,0) [[Ar],[Terra]]Nothing
atualizaBloco :: Posicao -> Bloco -> Mapa -> Mapa Source #
Substitui o bloco numa dada posição do mapa.
NB: Devolve o próprio mapa se a posição não pertencer ao mapa.
eBlocoEscavavel :: Bloco -> Bool Source #
Verifica se um bloco é escavável, ou seja, se tem durezaBloco.
Escavadora
atualizaEscavadora :: (Escavadora -> Escavadora) -> Jogo -> Jogo Source #
Aplica uma transformação à escavadora do jogo.
apoiado :: Jogo -> Bool Source #
Verifica se a escavadora está apoiada, ou seja, se não está suspensa no ar.
A escavadora está apoiada se o bloco imediatamente abaixo existir e não for Ar, ou se estiver
na última linha do mapa. Só se escava quando se está apoiado.
pesoCarga :: Escavadora -> Peso Source #
Peso total dos minérios transportados pela escavadora.
O peso limita a carga: ver capacidadeEscavadora.
valorCarga :: Escavadora -> Creditos Source #
Valor total dos minérios transportados pela escavadora, ou seja, quanto rende Vende.
sofreDano :: Int -> Escavadora -> Escavadora Source #
A escavadora perde vida, sem nunca ficar com vida negativa. É o que acontece com a Lava, com
as explosões e com as quedas.
Edifícios
edificioEm :: Posicao -> Jogo -> Maybe TipoEdificio Source #
Devolve o tipo de edifício numa dada posição, se lá existir algum.
NB: Se houver mais do que um edifício na mesma posição — o que a Tarefa 1 não permite — devolve o primeiro da lista.