Safe Haskell | None |
---|
Synopsis
- piecex :: Int -> Corridor -> Piece
- getpiece :: Coords -> Maze -> Piece
- getPacmanCoords :: [Player] -> Coords
- getPlayerlist :: State -> [Player]
- getMaze :: State -> Maze
- replaceMaze :: State -> Maze -> State
- replacePiece :: State -> Maze
- getPacman :: [Player] -> Player
- rmPacman :: [Player] -> [Player]
- setPlayerOrientation :: Player -> Orientation -> Player
- play :: Play -> State -> State
- pieceMove :: Play -> State -> State
- checkPacID :: [Player] -> Int -> Bool
- checkNextGhost :: Play -> State -> Bool
- moveNextGhost :: Play -> State -> State
- numberOfGs :: Play -> State -> Int
- numberOfDeadGs :: Play -> State -> Int
- findGhosts :: [Player] -> Coords -> [Player]
- setGhostsCoords :: [Player] -> Coords -> [Player]
- getPacLifes :: [Player] -> Int
- getsoloPacLifes :: Player -> Int
- loseLife :: Player -> Player
- rmGhosts :: [Player] -> [Player] -> [Player]
- getGhostsModes :: [Player] -> [GhostMode]
- getGhostMode :: Player -> GhostMode
- getGhostsByMode :: GhostMode -> [Player] -> [Player]
- setGhostsMode :: GhostMode -> [Player] -> [Player]
- setPacMode :: PacMode -> Player -> Player
- initialCoordsPac :: Maze -> Coords
- getMiddleOfMaze :: Maze -> Coords
- checkTunnel :: Play -> State -> Bool
- moveTunnel :: Play -> State -> State
- foodlittleMove :: Play -> State -> State
- foodBigMove :: Play -> State -> State
- emptyMove :: Play -> State -> State
- addPlayerPoints :: Int -> Player -> Player
- setMega :: [Player] -> [Player]
- repSetGet :: [Player] -> Orientation -> [Player]
- checkID :: Player -> Int -> Bool
- checkNextpiece :: Play -> State -> Piece
- moveNewCoords :: Play -> State -> Coords
- checkcoords :: State -> Bool
- genMaze1 :: Int -> Int -> Int -> IO ()
Documentation
piecex :: Int -> Corridor -> Piece #
A função piecex é uma função auxiliar da função getpiece. Esta descobre a peça que está numa determinada posição num corredor
getpiece :: Coords -> Maze -> Piece #
A função getpiece é responsável por encontar uma peça que está numas determinadas coordenadas num Labirinto.
getPacmanCoords :: [Player] -> Coords #
A função getPacmanCoords é responsável por encontrar de entre uma lista de quaisquer jogadores as coordenadas do pacman.
getPlayerlist :: State -> [Player] #
A função getPlayerlist é responsável por retirar de um State a sua lista de players.
replaceMaze :: State -> Maze -> State #
A função replaceMaze é responsável por inserir um determinado Maze num State.
replacePiece :: State -> Maze #
A função replacePiece é responsável por alterar o Maze de um determinado State para outro (segundo os Movimentos do Pacman simulando que ele esteja a comer essas Pieces).
getPacman :: [Player] -> Player #
A função getPacman é responsável por isolar o Pacman de entre uma lista de Players.
rmPacman :: [Player] -> [Player] #
A função rmPacman é responsável por retirar o player Pacman da lista com todos os players.
setPlayerOrientation :: Player -> Orientation -> Player #
A função setPlayerOrientation é responsável por colocar uma determinada orientação num Player à escolha.
play :: Play -> State -> State #
A função play é a função principal da tarefa 3 e é responsável por todas as condições principais utilizando as outras funções para a definir.
pieceMove :: Play -> State -> State #
A função pieceMove é responsável por traduzir uma jogada simples, ou seja, onde não há interferências de Ghosts.
checkPacID :: [Player] -> Int -> Bool #
A função checkPacID é responsável por verificar se um número é o valor do identificador do pacman.
checkNextGhost :: Play -> State -> Bool #
A função checkNextGhost é responsável por verificar se existe algum ghost na posição seguinte à do pacman. É importante para o caso de Pacman vs Ghost.
moveNextGhost :: Play -> State -> State #
A função moveNextGhost é responsável por fazer o confronto entre o pacman e os ghots através de diferentes funções definidas anteriormente e postriormente.
numberOfGs :: Play -> State -> Int #
A função numberOfGhosts é responsável por contar o número de ghosts com uma determinada coordenada de entre uma lista de players.
numberOfDeadGs :: Play -> State -> Int #
A função numberOfDeadGs é responsável por contar o número de ghosts cujo Mode é Dead e que se encontrem na coordenada seguinte à do pacman
findGhosts :: [Player] -> Coords -> [Player] #
A função findghosts é responsável por encontar numa lista de quaisquer players os ghosts com uma certa coordenada.
setGhostsCoords :: [Player] -> Coords -> [Player] #
A setGhostsCoords é responsável por colocar colocar coordenadas num conjunto de Ghosts de uma lista.
getPacLifes :: [Player] -> Int #
A função getPacLifes é responsável por dar de entre uma lista de players o número de vidas do pacman.
getsoloPacLifes :: Player -> Int #
A função getsoloPacLifes é responsável por dar o valor das vidas de um player.
A função rmGhots é responsável por remover uma lista de ghosts de uma lista de ghots.
getGhostsModes :: [Player] -> [GhostMode] #
A função getGhostsModes utiliza a função getGhostMode como auxiliar e é responsável por dar uma lista com todos os modos de uma lista de players Ghost.
getGhostMode :: Player -> GhostMode #
A função getGhostMode é responsável por dar o mode de ghost.
getGhostsByMode :: GhostMode -> [Player] -> [Player] #
A função getGhostsByMode é responsável por retirar de uma lista de players os ghosts com um determinado GhostMode.
setGhostsMode :: GhostMode -> [Player] -> [Player] #
A função setGhostsMode é responsável por alterar o estado de fantasmas uma qualquer lista de players, independentemente do tipo ghost ou do tipo pacman.
setPacMode :: PacMode -> Player -> Player #
A função setPacMode é responsável por alterar o estado de um player Pacman por um qualquer.
initialCoordsPac :: Maze -> Coords #
A função initialCoordsPac dá as coordenadas do pacman quando este morre.
getMiddleOfMaze :: Maze -> Coords #
A getMiddleofMaze é responsável por dar as coordenadas do meio da casa dos Ghots,importante para quando ocorre a morte de um ghost.
checkTunnel :: Play -> State -> Bool #
A função checkTunnel verifica se o player que se quer mover está em situação de túnel. Assim, se esta condição for válida será possivel chamar a função moveTunnel para alterar as coordenadas do Pacman.
moveTunnel :: Play -> State -> State #
A função moveTunnel é responsável por alterar as coordenadas do Pacman e garante que não é alterado mais nenhum valor.
foodlittleMove :: Play -> State -> State #
A função foodlittleMove é responsável por tratar do movimento do pacman quando a peça seguinte é Food Little e não há intervenção de fantasmas. Para tal utiliza a função pacFLittle que altera alguns dos valores necessários no pacman tais como os pontos e as coordenadas.
foodBigMove :: Play -> State -> State #
A função foodBigMove é responsável por tratar do movimento do pacman quando a peça seguinte é Food Big e não há intervenção de fantasmas. Para tal utiliza a função pacFBig que altera alguns dos valores necessários no pacman mas também usa importantemente a função setMega definida mais abaixo.
emptyMove :: Play -> State -> State #
A função emptyMove,através da sua auxiliar pacEmpty cujo objetivo é alterar as coordenadas do pacman que correspondem à posição seguinte, resultando disto o state final que é dado, isto quando se trata de um movimento onde a peça seguinte é Empty e não há intervenção de fantasmas.
addPlayerPoints :: Int -> Player -> Player #
A função addPlayerPoints é responsável por adicionar um qualquer número de pontos a um player à escolha.
setMega :: [Player] -> [Player] #
A função setMega é responsável por várias alterações ao nível dos players que são muito úteis, por exemplo na função foodBigMove.
repSetGet :: [Player] -> Orientation -> [Player] #
A função repSetGet é responsável pela substituição da orientação do Pacman, por uma à escolha, que está inserido numa lista de Players.
checkID :: Player -> Int -> Bool #
A função checkID é responsável por ver se um player tem o mesmo identificador que um número Inteiro. Esta função é útil para verificar sobre qual dos players é aplicado o Move.
checkNextpiece :: Play -> State -> Piece #
A função checkNextpiece é responsável por dar a próxima peça, tendo em consideração o identificador do (Move _ _ ) e o identificador de uma lista de players, através da função moveNewCoords e da função que está no ínicio da tarefa, a função getpiece.
moveNewCoords :: Play -> State -> Coords #
A função moveNewCoords é responsável por dar as coordenadas seguintes ao player cujo identificador é igual ao do (Move _ _), utilizando a função getPlayerCoords como auxiliar.
checkcoords :: State -> Bool #
A função checkcoords é responsável por verificar dentro de uma lista de players se algum deles está numa posição cuja Piece é uma Wall.