Projetos

IA de Xadrez

Motor de xadrez próprio em Go com bitboards e alfa-beta

  • Go

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
Ver código no GitHub