Este projeto é uma implementação em terminal do clássico jogo de lógica Sokoban, desenvolvida em Prolog.
O jogador (😀) deve empurrar todas as caixas (📦) até suas posições corretas (📥) no mapa, usando o menor número de movimentos possível.
Assim como a primeira versão (em Haskell), esta implementação foca em organização modular e arquitetura clara, incluindo:
- Menu inicial para seleção de nível (fácil, médio ou difícil).
- Execução totalmente no terminal.
- Separação entre lógica do jogo, carregamento de mapas e interface.
Baixe e instale via site oficial ou pelo terminal:
sudo apt-get install swi-prologVersão utilizada neste projeto:
SWI-Prolog 9.2.4
Na raiz do projeto, execute o interpretador Prolog e carregue o arquivo principal:
cd src
swipl?- [main].
?- executar.Sokoban-Prolog/
├── data/
│ └── maps/ # Mapas em Prolog (fácil, médio e difícil).
├── src/
│ ├── main.pl # Ponto de entrada do jogo.
│ ├── controller.pl # Controla fluxo do jogo (inputs e atualizações).
│ ├── core/ # Lógica central.
│ │ ├── game_state.pl# Regras e manipulação do estado do jogo.
│ │ └── map_loader.pl# Carregamento dos mapas.
│ ├── ui/ # Interface do jogo (menus e exibição).
│ │ └── menu.pl
│ └── utils/ # Utilidades gerais.
│ └── console.pl
└── README.md
O projeto segue o princípio de separação de responsabilidades:
- main.pl: Inicia o jogo e conecta os módulos.
- controller.pl: Gerencia fluxo entre entrada, lógica e saída.
- core: Implementa regras do Sokoban e manipulação do estado.
- ui: Exibe menus e controla interação com o jogador.
- utils: Funções auxiliares para console.
- Anthony Willy
- Diogo Medeiros
- Eduarda Viana
- João Antonio
- Tamires Santiago
Este projeto é distribuído sob a licença BSD 3-Clause.
