Skip to content

Repositório dedicado ao projeto das disciplinas de Métodos Formais de Engenharia de Software e Teste de Software

Notifications You must be signed in to change notification settings

Difierro/ECO-RUNNER

Repository files navigation

Eco Runner 🎮🌱

Eco Runner é um jogo educativo desenvolvido em Python (Pygame) com integração ao banco de dados PostgreSQL. O projeto combina entretenimento, tecnologia e conscientização ambiental, promovendo a coleta seletiva, reciclagem e combate à poluição. O jogo está alinhado aos Objetivos de Desenvolvimento Sustentável (ODS), em especial:

  • ODS5 – Igualdade de Gênero
  • ODS 12 – Consumo e Produção Responsáveis
  • ODS 13 – Ação Contra a Mudança Global do Clima

📌 Definição do Projeto

A narrativa apresenta Yluh, o Monstro da Poluição, que ameaça encobrir as cidades com fumaça e destruição. Para enfrentá-lo, surge uma guardiã ambiental, cuja missão é coletar, separar e transformar resíduos em armas contra o inimigo.

A jogabilidade está dividida em três fases principais:

  • Fase 1 – A Coleta: em estilo plataforma 2D, o jogador deve coletar 20 materiais recicláveis, desviando de obstáculos como fumaça tóxica e lixo radioativo.
  • Fase 2 – A Separação: o jogador deve classificar corretamente os itens coletados nas lixeiras de coleta seletiva (azul, vermelha, verde e amarela). O sistema impede erros, mantendo o item na tela até que seja feita a escolha correta. Ao concluir, o jogador recebe a arma reciclada e suas vidas são restauradas.
  • Fase 3 – O Desafio Final: a protagonista utiliza a arma reciclada para enfrentar Yluh em uma batalha decisiva, reduzindo sua vida até a vitória.

O Eco Runner proporciona diversão e aprendizado, transmitindo valores de responsabilidade ambiental e incentivando a reflexão sobre os impactos da poluição nas cidades.

📂 Estrutura do Projeto

Este repositório será desenvolvido ao longo de três unidades. Na Unidade 1, entregamos:

O desenvolvimento do código (mecânicas do jogo, banco de dados e integração) será realizado nas próximas unidades.

🛠 Tecnologias e Ferramentas Utilizadas

  • Linguagem: Python
  • Biblioteca de Jogo: Pygame
  • Banco de Dados: PostgreSQL

📋 Requisitos

Requisitos Funcionais

  • RF01: Login de Usuário
  • RF02: Cadastrar Jogador
  • RF03: Coletar materiais recicláveis
  • RF04: Classificar itens recicláveis
  • RF05: Combater Yluh
  • RF06: Gerenciar jogo: pausar, salvar e carregar progresso

Requisitos Não Funcionais

  • RNF01: Tempo de resposta
  • RNF02: Consistência e Legibilidade da Interface
  • RNF03: Compatibilidade com Windows/Linux
  • RNF04: Integridade e resiliência dos dados salvos

📊 Plano de Testes

Os testes planejados para a primeira entrega incluem:

  • Teste Funcional: login, coleta, classificação de itens, bloqueio de itens errados e salvamento de progresso.
  • Teste de Integração: comunicação entre jogo e banco de dados.
  • Teste de Usabilidade: alertas adequados em erros de classificação de itens.
  • Teste de Desempenho: medição de resposta em tempo de execução.

📐 Especificação Formal

A especificação formal dos requisitos foi desenvolvida utilizando duas abordagens complementares para garantir a corretude do sistema:

  • Notação Z: Utilizada para modelar a estrutura de dados, estados e operações críticas.

  • Redes de Petri: Utilizadas para a modelagem de estados dinâmicos e fluxos de transição. Os esquemas descrevem:

  • Estados e invariantes (vidas do jogador, itens, progresso salvo, vidas de Yluh).

  • Operações formais (login, cadastro, coleta, classificação, combate, pausa, salvar e carregar).

  • Garantia de consistência lógica e prevenção de erros durante a execução do jogo.

🤝 Colaboradores

Foto de Gustavo Rodrigues
Gustavo Rodrigues
Foto de Kauê Valentim
Kauê Valentim
Foto de 
        Maria Aparecida
Maria Aparecida
Foto de Maria Eduarda
Maria Eduarda
Foto de Rubens Alexandre
Rubens Alexandre

About

Repositório dedicado ao projeto das disciplinas de Métodos Formais de Engenharia de Software e Teste de Software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5