← Todos os projetos
Laboratório2026

Estudo de Padrões de Projeto: Game of Life

Um estudo em Python e Pygame que aplica padrões de projeto, princípios SOLID e limites arquiteturais mais claros ao Game of Life de Conway.

Tecnologias

  • Python
  • Pygame
  • NumPy
  • pytest
  • Docker

Visão geral

O objetivo não foi apenas fazer o jogo funcionar, mas estudar como uma pequena aplicação em Pygame poderia ser organizada com responsabilidades mais claras. A implementação original permanece disponível como referência, enquanto a aplicação refatorada é organizada em um pacote dedicado.

Padrões implementados

A refatoração usa quatro padrões para tornar explícitas as responsabilidades e dependências.

  • Strategy: alterna entre as regras de evolução Conway e HighLife sem alterar o motor do jogo.
  • State: modela os modos de simulação Edição, Execução e Pausa sem espalhar lógica condicional pela aplicação.
  • Publisher/Subscriber: permite que eventos da simulação notifiquem assinantes de resumo e logging por meio de uma interface.
  • Factory: centraliza a criação de objetos de estado sem acoplar diretamente os estados concretos entre si.

Arquitetura e aprendizados

A arquitetura mantém a entrada e a renderização do Pygame na camada de interface, enquanto o motor, a grade, as estratégias e os assinantes permanecem independentes da UI. Isso apoia limites orientados aos princípios SOLID e torna o sistema mais fácil de compreender.

Este é um repositório de estudo, não uma implementação definitiva. As escolhas orientadas a padrões são intencionalmente visíveis para que seus trade-offs possam ser analisados; a mesma aplicação poderia usar padrões diferentes ou um design mais simples.