O so_long faz parte da grade da Escola 42 (Milestone 2). Ele é um projeto gráfico desenvolvido utilizando a biblioteca MiniLibX.
Nesse projeto temos que desenvolver um jogo 2D na Linguagem C, utilizando a MiniLibX (biblioteca disponibilizada pela escola).
O objetivo é mover o jogador pelo mapa, coletar todos os itens e alcançar a saída. Sempre respeitando as regras definidas pelo mapa e movimentações.
-
O jogador deve coletar todos os coletáveis (C) presentes no mapa.
-
Após coletar tudo, deve ir até a saída (E) para vencer o jogo.
-
O jogador não pode atravessar paredes (1).
-
Cada movimento é contado e exibido no terminal. No caso do Bônus deve exibir na tela do jogo.
O mapa é fornecido por um arquivo com extensão .ber e deve seguir as regras abaixo:
-
O mapa deve ser retangular.
-
O mapa deve ser totalmente cercado por paredes (1).
-
Deve conter apenas um jogador (P).
-
Deve conter apenas uma saída (E).
-
Deve conter ao menos um coletável (C).
-
Apenas os seguintes caracteres são permitidos:
-
0 → Espaço vazio
-
1 → Parede
-
P → Jogador
-
C → item coletável
-
E → Saída
-
Caso alguma dessas regras não seja respeitada, o programa encerra exibindo uma mensagem de erro.
111111
1P0C01
100001
1C0E01
111111
| Tecla | Ação |
|---|---|
| W / ↑ | Mover para cima |
| S / ↓ | Mover para baixo |
| A / ← | Mover para esquerda |
| D / → | Mover para direita |
| ESC | Fechar o jogo |
so_long/
├── inc/ # Headers
├── lib/ # Bibliotecas
├── maps/ # Mapas .ber
├── src/ # Código fonte
├── textures/ # Sprites e imagens (.xpm)
├── Makefile
└── README.md
-
Para compilar o projeto, execute:
make -
Para limpar os arquivos objeto:
make clean -
Para remover tudo (obj e executável):
make fclean
Após compilar, execute o programa passando o mapa como argumento:
./so_long ./maps/map_42.ber
-
O jogo utiliza gráficos simples via MiniLibX.
-
O projeto segue as normas da Norminette.
-
É necessário ter o ambiente gráfico X11 para execução do programa.
-
Instalar dependências:
sudo apt-get update && sudo apt-get install xorg libxext-dev zlib1g-dev libbsd-dev
-
Ingrid Lemos Caetano Silva

