Skip to content
This repository was archived by the owner on Aug 6, 2023. It is now read-only.

voidbert/LI1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

174 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crossy Road

Clone do famoso jogo como um projeto de Laboratórios de Informática I

Game screenshot

See screenshots for more images.

Autoria do Grupo 12

  • Humberto Gil Azevedo Sampaio Gomes (a104348[at]alunos.uminho.pt)
  • José António Fernandes Alves Lopes (a104541[at]alunos.uminho.pt)

Nota

20 / 20 ⭐

Como começar

Clonar o repositório

Com SSH:

$ git clone git@gitlab.com:uminho-di/li1/2223/projetos/2022li1g012.git

Ou por HTTPS:

$ git clone https://gitlab.com/uminho-di/li1/2223/projetos/2022li1g012.git

Correr e instalar o jogo

Uma dependência opcional para jogar com áudio é o mpv.

Para correr o programa (compilação automática do projeto e das dependências):

$ cabal run exe:2022li1g012

Para instalar o jogo:

$ cabal install

Desenvolvimento

Interpretador

Para testar funções durante o processo de desenvolvimento, o ghci é iniciado com:

$ cabal repl exe:2022li1g012

Testes

O projeto utiliza a biblioteca HUnit para fazer testes unitários. Para os executar:

$ cabal test

Documentação

Pode gerar a documentação do projeto usando Haddock:

$ cabal haddock --haddock-all

Contribuição

Seguem-se algumas normas na escrita de código para garantir a sua uniformidade. Estas são vagamente inspiradas nas orientações recomendadas para Haskell.

Formatação de ficheiros

  • As linhas devem ter, no máximo, um comprimento de 80 caracteres;

  • Não deixar espaço em branco numa linha vazia ou no final de uma linha (trailing whitespace);

  • Não usar tabulações. Dois espaços devem ser usados no seu lugar;

  • Um ficheiro deve terminar com o caracter newline ('\n', 0x0A);

  • Em guardas e casos envolvendo where, let, do e case, deve começar-se uma nova linha para as novas expressões, que se devem manter alinhadas;

fact n
  | n == 0 = 1
  | n > 0  = n * fact (n - 1)
  • Notação de expressões lambda: preferir \ x -> ... a \x -> ...;

  • Usar um espaço para separar as parcelas de operadores (foo == bar).

Nomes de objetos

  • Utilizar camelCase para funções e PascalCase para tipos, módulos, ...

  • Funções com acumulador devem ter o nome da função principal com o sufixo Acc. Exemplo:

sum lst = sumAcc lst 0
  where sumAcc []     acc = acc
        sumAcc (x:xs) acc = sumAcc xs (x+acc)

Outras boas práticas

  • O nome das funções, dos tipos de dados e de variáveis devem estar em língua portuguesa;

  • Explicitar o tipo de funções;

  • Evitar funções parciais (por exemplo, usando o tipo Data.Maybe);

  • Procurar escrever funções sucintas e reutilizáveis para outros problemas;

  • Documentar o código com o Haddock e procurar escrever testes unitários com HUnit.

About

LI1 University Project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •