Skip to content

Tower Defense game developed in Haskell during the first semester of the Software Engineering degree.

Notifications You must be signed in to change notification settings

matheusm18/immutabletowers-li1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laboratórios de Informática I

Immutable Towers é um jogo do gênero Tower Defense, desenvolvido em Haskell no âmbito da cadeira Laboratórios de Informática I, do curso de Engenharia Informática na Universidade do Minho (ano letivo 2024/25).

O objetivo do jogo é impedir que ondas de inimigos alcancem a base do jogador. Para isso, é necessário posicionar estrategicamente torres que atacam automaticamente os inimigos, evitando que estes destruam a base.

Nota final do projeto: 17/20

Enunciado do projeto

O enunciado do projeto pode ser consultado aqui

Imagens do jogo

Menu Inicial

menuinicial

Texturas

O jogo permite ao jogador escolher entre duas opções de textura, acessíveis através do menu de texturas. A diferença visual entre elas pode ser observada nas imagens abaixo:

menutexturas textura1 textura2

Menu Niveis

O jogo permite ao jogador escolher entre três níveis distintos, acessíveis através do menu de seleção de nível. Inicialmente, apenas o nível 1 está disponível. À medida que o jogador vence cada nível, os seguintes são desbloqueados progressivamente. Cada nível apresenta um mapa diferente, com distribuições e tipos de inimigos variados, oferecendo desafios únicos a cada etapa.

menuniveis

Menu Pausa

O jogo permite ao jogador pausar a qualquer momento durante um nível, pressionando a tecla TAB. No menu de pausa, é possível encontrar uma opção para reiniciar o nível atual, voltando ao seu início.

menupausa

Situação de jogo - Nível 1

nivel1

Situação de jogo - Nível 2

nivel2

Situação de jogo - Nível 3

nivel3

Menu Final

Ao completar todas as fases, o jogador recebe uma mensagem de parabéns junto com o seguinte menu:

menufinal

Funcionalidades Extras

As restantes funcionalidades extras podem ser consultadas aqui.

Desenvolvido por

Executável

Pode compilar e executar o programa através dos comandos build e run do Cabal.

cabal run --verbose=0

Interpretador

Para abrir o interpretador do Haskell (GHCi) com o projeto carregado, utilize o comando repl do Cabal

cabal repl

Testes

O projecto utiliza a biblioteca HUnit para fazer testes unitários.

Execute os testes com o comando test do Cabal e utilize a flag --enable-coverage para gerar um relatório de cobertura de testes.

cabal test --enable-coverage

Execute os exemplos da documentação como testes com a biblioteca doctest. Para instalar o executavel utilize o comando cabal install doctest.

cabal repl --build-depends=QuickCheck,doctest --with-ghc=doctest --verbose=0

Documentação

A documentação do projeto pode ser gerada recorrendo ao Haddock.

cabal haddock

About

Tower Defense game developed in Haskell during the first semester of the Software Engineering degree.

Resources

Stars

Watchers

Forks

Packages

No packages published