🤖 Como a IA deste jogo pensa: O Algoritmo Minimax
No modo Imbatível, a IA não usa regras improvisadas nem "sorte". Ela executa o clássico algoritmo da Teoria dos Jogos conhecido como Minimax, formulado pelo matemático John von Neumann em 1928 para jogos de soma zero com informação perfeita.
NÍVEL MAX (IA)
A IA busca a jogada que resulta na maior pontuação possível (+10 para vitória).
NÍVEL MIN (HUMANO)
A IA assume que você jogará com perfeição para minimizar os pontos dela (-10 para derrota).
AVALIAÇÃO DE FOLHA
Estados terminais recebem nota: +10 - profundidade para vitórias rápidas, 0 para empates.
Por que o jogo é matematicamente invencível?
O Jogo da Velha possui apenas 255.168 estados possíveis de tabuleiro (ou meros 26.830 considerando simetrias e rotações). Como o espaço de busca é minúsculo para processadores modernos, o algoritmo avalia a totalidade de todos os finais possíveis instantaneamente (em menos de 2 milissegundos). Se você jogar com perfeição, o resultado será sempre Empate. Se cometer um único deslize, a IA vencerá infalivelmente.
Código Conceitual da Recursão Minimax:
function minimax(tabuleiro, profundidade, isMaximizing) {
const vencedor = verificarVitoria(tabuleiro);
if (vencedor === 'IA') return 10 - profundidade;
if (vencedor === 'Humano') return profundidade - 10;
if (tabuleiroCheio(tabuleiro)) return 0;
if (isMaximizing) {
let melhor = -Infinity;
for (const casa of casasLivres(tabuleiro)) {
tabuleiro[casa] = 'IA';
melhor = Math.max(melhor, minimax(tabuleiro, profundidade + 1, false));
tabuleiro[casa] = '';
}
return melhor;
} else {
let melhor = +Infinity;
for (const casa of casasLivres(tabuleiro)) {
tabuleiro[casa] = 'Humano';
melhor = Math.min(melhor, minimax(tabuleiro, profundidade + 1, true));
tabuleiro[casa] = '';
}
return melhor;
}
}