Sobre o projeto
Módulo de inteligência artificial de um jogo de xadrez contra o computador, desenvolvido para a disciplina de Engenharia de Software. Recebe uma posição em FEN e devolve um lance em notação UCI.
A IA roda como worker: ela mesma consulta o backend perguntando se há um lance a calcular, calcula e devolve o resultado. Assim não é necessário hospedar um serviço público para a IA.
Destaques
Motor próprio com bitboards, magic bitboards e Zobrist hashing, validado com testes perft
Busca alfa-beta com iterative deepening, busca de quiescência e ordenação de lances
Tabela de transposição e livro de aberturas PolyGlot
Gestão de tempo com interrupção da busca e níveis de dificuldade
Worker HTTP com retry/backoff integrado ao backend do jogo
Mock do backend e harness de linha de comando para testar FEN → lance localmente
CI com testes automatizados no GitHub Actions
Tecnologias
- Go
- Bitboards
- HTTP
- go test
- GitHub Actions