Loading repository data…
Loading repository data…
pollyanasousa / repository
CEAGRI Recicla é um jogo educativo de coleta seletiva desenvolvido em Python com Pygame, onde o jogador controla uma lixeira e deve capturar os resíduos recicláveis corretos que caem na tela. Projeto acadêmico da disciplina de Princípios de Programação — BSI UFRPE.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Jogo educativo de reciclagem desenvolvido para a disciplina de Princípios de Programação do curso de Bacharelado em Sistemas de Informação (BSI) da UFRPE.
CEAGRI Recicla é um jogo de coleta seletiva onde o jogador controla uma lixeira e deve capturar os itens corretos que caem do céu. O objetivo é separar corretamente os resíduos recicláveis, acumulando pontos e batendo recordes!
Pygame 2 — biblioteca para desenvolvimento de jogos 2D em Python. É utilizada neste projeto pois o Python puro não possui recursos nativos para criação de jogos. Sem o Pygame não seria possível exibir janela, mover a lixeira, detectar colisões, tocar sons ou controlar o tempo.
| Recurso | Módulo do Pygame utilizado |
|---|---|
| 🖼️ Exibir imagens e gráficos na tela | pygame.display, pygame.draw, tela.blit() |
| ⌨️ Capturar teclas e cliques do mouse | pygame.event, pygame.key.get_pressed() |
| 🎵 Reproduzir músicas e efeitos sonoros | pygame.mixer.music, pygame.mixer.Sound |
| ⏱️ Controlar velocidade e FPS do jogo | pygame.time.Clock |
| 🔲 Detectar colisão entre objetos | pygame.Rect.colliderect() |
| 🖋️ Renderizar fontes e textos | pygame.font.SysFont |
O projeto foi estruturado com POO, aplicando os seguintes conceitos:
| Conceito | Onde foi aplicado |
|---|---|
| Classes | Jogo, Lixeira, Lixo, LixoBonus, Botao — cada elemento do jogo é uma classe |
| Herança | LixoBonus herda de Lixo, reaproveitando cair() e saiu_da_tela() |
| Polimorfismo | LixoBonus sobrescreve desenhar() para adicionar o fundo dourado |
| Encapsulamento | Atributos e métodos organizados dentro de cada classe |
| Abstração | Cada classe representa um elemento real do jogo com responsabilidade única |
| Instanciação | Objetos criados dinamicamente (ex: novos lixos caindo a cada frame) |
| Atributos de classe | TIPOS_DE_LIXO em Lixo e PONTOS_BONUS em LixoBonus — compartilhados por todas as instâncias |
| Métodos | desenhar(), mover(), cair(), foi_clicado() etc. |
ceagri_recicla/
│
├── main.py # Ponto de entrada do jogo
│
├── models/
│ ├── jogo.py # Controle geral das telas e lógica
│ ├── lixeira.py # Lixeira controlada pelo jogador
│ ├── lixo.py # Itens de lixo que caem na tela (Lixo e LixoBonus)
│ └── botao.py # Botões clicáveis da interface
│
├── utils/
│ └── constantes.py # Cores, tamanhos e fontes do jogo
│
├── assets/
│ ├── imagens/ # Imagens das lixeiras, lixos e ícones
│ └── sons/ # Arquivos de áudio do jogo (MP3)
│
├── recorde.json # Arquivo gerado automaticamente com o ranking Top 5
└── README.md
git clone https://github.com/pollyanasousa/ceagri-recicla.git
cd ceagri-recicla
pip install pygame
python main.py
⚠️ Nota: Este jogo roda localmente e requer Python instalado na máquina. Por usar Pygame, não é possível publicar no GitHub Pages (que suporta apenas páginas web estáticas). Para jogar, é necessário clonar o repositório e executar localmente.
Pollyana Cassia de Sousa
Curso: Bacharelado em Sistemas de Informação — UFRPE
Disciplina: [Princípios de Programação]
Professor: Cleyton Vanut Cordeiro de Magalhães
Projeto acadêmico sem fins comerciais.