ForHosting KIT · Ferramentas para dev

Verifique vencedor, empate ou partida de jogo da velha

Este verificador de vencedor do jogo da velha lê um tabuleiro 3x3 completo ou parcial e determina o resultado atual.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Ele informa se X ou O venceu, se um tabuleiro cheio terminou empatado ou de quem é a próxima jogada quando a partida pode continuar. Também rejeita tabuleiros malformados e contagens impossíveis de X e O, sendo útil para validar jogos salvos, testar lógica, revisar exercícios e alimentar pequenos aplicativos sem depender de suposições ou inspeção visual.

Informe o tabuleiro em um formato claro de três linhas

Forneça exatamente três linhas, com três casas em cada uma. Use X para o primeiro jogador, O para o segundo e um hífen para qualquer casa vazia. Você pode inserir espaços entre as casas para facilitar a leitura, como em X O X, pois os espaços em branco dentro de cada linha são ignorados. Mantenha cada linha do tabuleiro em uma linha separada. O verificador trata x e o minúsculos como seus equivalentes maiúsculos, mas rejeita qualquer outro caractere de casa. Esse formato rigoroso torna a entrada fácil de digitar, colar, armazenar em um caso de teste ou gerar em um aplicativo, evitando símbolos ambíguos. O primeiro jogador é sempre X, conforme a ordem padrão do jogo da velha. Portanto, um tabuleiro vazio tem três linhas de três hífens, e um tabuleiro parcialmente jogado mantém um hífen onde ninguém jogou. Se houver linhas demais ou de menos, uma linha tiver o número errado de casas ou aparecer uma marca não aceita, a solicitação retornará um erro de entrada em vez de tentar corrigir ou reinterpretar a posição. Esse comportamento mantém as verificações automatizadas previsíveis.

Entenda a detecção de vitória e empate

O verificador examina as oito linhas vencedoras possíveis: três linhas horizontais, três colunas verticais e as duas diagonais. Um jogador vence quando uma ou mais dessas linhas contém três marcas iguais. Uma resposta de vitória identifica o jogador e retorna todas as linhas vencedoras como pares de coordenadas de linha e coluna, usando coordenadas iniciadas em um; assim, a casa superior esquerda é linha 1, coluna 1. Retornar todas as linhas correspondentes é importante quando a jogada final completa duas linhas ao mesmo tempo. Se nenhum jogador tiver uma linha vencedora e todas as casas estiverem ocupadas, o resultado será empate. Se restarem casas vazias, a partida será informada como em andamento, e a resposta identificará o próximo jogador pela contagem das marcas. O algoritmo é determinístico e examina apenas as nove casas e as oito linhas conhecidas. Ele não usa aleatoriedade, serviços de rede, estado armazenado nem suposições sobre jogadas não representadas no tabuleiro. O mesmo tabuleiro sempre produz o mesmo resultado estruturado, tornando a capacidade adequada para testes unitários e validações repetíveis.

Identifique posições impossíveis em uma partida válida

Um tabuleiro pode parecer plausível e ainda assim violar a ordem das jogadas. Como X joga primeiro e os participantes se alternam, X deve ter a mesma quantidade de marcas que O ou exatamente uma a mais. O verificador rejeita uma posição quando O jogou mais vezes que X ou quando X está duas ou mais jogadas à frente. Ele também compara uma vitória com essas contagens: uma vitória de X exige uma marca X adicional, enquanto uma vitória de O exige quantidades iguais. Um tabuleiro em que ambos tenham linhas vencedoras é rejeitado, pois o jogo deveria ter terminado após a primeira vitória válida. Essas verificações são especialmente úteis quando os tabuleiros vêm de entradas de usuários, registros de banco de dados, tutoriais, exercícios de entrevista ou um mecanismo de jogo personalizado em desenvolvimento. Elas impedem que uma posição impossível seja classificada como vitória ou empate válido. A capacidade avalia o estado fornecido em vez de reconstruir todo o histórico de jogadas; por isso, a validação se concentra nos fatos que um tabuleiro 3x3 pode comprovar diretamente. Em uma posição válida e inacabada, use next_player para continuar com a marca correta.

Teste um mecanismo de jogo

Compare o tabuleiro armazenado pelo seu aplicativo com um resultado determinístico em testes automatizados.

Valide desafios enviados

Rejeite posições malformadas ou com turnos incoerentes antes de avaliar a resposta de uma pessoa.

Retome uma partida salva

Determine se o jogo terminou e identifique o próximo jogador correto em um tabuleiro inacabado.

Qual formato de tabuleiro devo usar?

Envie três linhas de três casas, usando X, O e - para uma casa vazia. Os espaços entre as casas são opcionais.

A entrada em letras minúsculas funciona?

Sim. As letras x e o minúsculas são convertidas em maiúsculas antes da verificação do tabuleiro.

Como as linhas vencedoras são representadas?

Cada linha vencedora é uma matriz de três pares de coordenadas de linha e coluna iniciadas em um.

O que torna inválida a contagem de X e O?

O nunca pode ter mais marcas que X, e X nunca pode ter mais de uma marca adicional, pois começa e os turnos se alternam.

Quanto custa?

Cada solicitação de API custa US$ 0,002. A versão para navegador pode ser executada localmente na página.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/game/tic-tac-toe-winner-check

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/game/tic-tac-toe-winner-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"board":"X O X\nO X -\n- O X"}'
{
  "board": "X O X\nO X -\n- O X"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "game.tic_tac_toe_winner_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →