Case study
Algoritmos e Inteligência de Jogo com Python
Coleção de projetos acadêmicos desenvolvidos em Python durante a universidade, explorando fundamentos de programação, recursão, matemática computacional e tomada de decisão algorítmica. O projeto final implementa um Jogo da Velha contra o computador utilizando busca recursiva de estados e uma estratégia baseada em Minimax.
Tecnologias
O problema
As atividades tinham como objetivo aplicar conceitos fundamentais de programação na resolução de problemas matemáticos e lógicos sem depender apenas de soluções prontas da linguagem. Os desafios incluíam realizar cálculos geométricos a partir de dados fornecidos pelo usuário, implementar operações matemáticas utilizando recursão e desenvolver um adversário computacional capaz de tomar decisões automaticamente em um Jogo da Velha.
A solução
Foram desenvolvidas aplicações de terminal em Python para resolver diferentes categorias de problemas. Os módulos de geometria utilizam relações trigonométricas para calcular lados, ângulos, alturas, área, perímetro e propriedades de triângulos. Outro exercício implementa produto, quociente e resto através de chamadas recursivas. No projeto final, o tabuleiro é representado por uma matriz e o computador analisa recursivamente os estados possíveis da partida para selecionar a melhor jogada, utilizando uma estratégia baseada no algoritmo Minimax.
Responsabilidades
Desenvolvimento e colaboração nas atividades acadêmicas em Python, incluindo modelagem dos problemas, implementação de algoritmos matemáticos e recursivos, validação de entradas do usuário e construção da lógica do Jogo da Velha. Participação na implementação da lógica de avaliação de estados, detecção de vitórias, gerenciamento do tabuleiro e tomada de decisão do adversário computacional. Observação importante: estou deixando essa parte propositalmente conservadora porque alguns arquivos identificam o trabalho como desenvolvido por um grupo de cinco participantes. Não colocaria algo como “Desenvolvi sozinho o algoritmo Minimax” sem termos certeza disso.
Decisões técnicas
Python foi utilizado como linguagem principal para concentrar o desenvolvimento nos fundamentos de lógica e algoritmos. Os problemas matemáticos foram separados em funções específicas para cálculos e validações. Recursão foi utilizada como parte central de alguns exercícios, inclusive para implementar operações aritméticas e explorar os diferentes estados possíveis do Jogo da Velha. No projeto final, o tabuleiro foi representado por uma matriz 3×3 e cada estado terminal recebeu uma pontuação, permitindo ao computador comparar jogadas e escolher a alternativa mais favorável.
Resultados
O conjunto de atividades consolidou fundamentos de programação estruturada, decomposição de problemas, manipulação de matrizes, recursão e matemática computacional. Como resultado final, foi desenvolvido um Jogo da Velha funcional no terminal com um adversário computacional capaz de analisar estados futuros da partida e selecionar jogadas estrategicamente, além de aplicações para resolução e classificação de propriedades geométricas de triângulos.