Validar notação algébrica de xadrez
Nbd2+ está bem escrito: um cavalo da coluna b vai para d2 e dá xeque. Digite um lance para confirmar que ele segue a notação algébrica padrão e ver a peça, a casa de destino, a captura, o xeque ou a promoção. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Notação
- Nbd2+
- Tipo de jogada
- piece
- Peça
- N
- Destino
- d2
- Coluna de origem
- b
Este validador verifica se um lance segue a sintaxe da Notação Algébrica Padrão, conhecida como SAN. Ele reconhece movimentos de peões e peças, capturas, desambiguação de origem, promoção, roque, xeque e xeque-mate. A análise é propositalmente sintática: não precisa de uma posição no tabuleiro nem afirma que o lance seja legal em uma partida específica. Use a ferramenta para identificar textos malformados antes de armazenar, importar, exibir ou processar dados de xadrez.
O que o validador reconhece
A Notação Algébrica Padrão resume um lance de xadrez em um texto curto e estruturado. Um movimento de peça começa com uma das letras maiúsculas K, Q, R, B ou N, seguida por uma desambiguação opcional da origem, um marcador opcional de captura e uma casa de destino, como e4 ou h8. Movimentos de peão não usam letra de peça: e4 representa um avanço sem captura, enquanto exd5 registra um peão da coluna e capturando em d5.
Promoções acrescentam um sinal de igual e Q, R, B ou N, como em e8=Q ou fxg8=N. O validador também aceita O-O e O-O-O para os roques pequeno e grande. Um sinal de mais no fim indica xeque; uma cerquilha final indica mate.
A notação diferencia maiúsculas de minúsculas. A resposta identifica categoria, destino, captura, xeque ou mate e inclui os dados de origem ou promoção presentes no lance.
Verificar sintaxe não é verificar legalidade
A ferramenta responde a uma pergunta específica: o texto tem o formato de um lance SAN? Ela não recebe tabuleiro, histórico, jogador da vez, direitos de roque ou estado de en passant; portanto, não consegue decidir se uma peça realmente alcança a casa indicada. Por exemplo, Nf3 tem sintaxe válida mesmo que determinada posição não contenha um cavalo capaz de chegar a f3.
Da mesma forma, um marcador de xeque na posição correta é aceito sem provar que o rei adversário está atacado. Essa separação ajuda em rotinas de importação, pois erros de escrita e violações das regras exigem mensagens diferentes. Destino incompleto, letra de peça minúscula, marcador de captura deslocado, coluna inválida ou sufixo incompatível podem ser recusados sem reconstruir a partida.
Depois da validação, você pode usar um motor com tabuleiro para testar a legalidade. Considere o campo valid apenas uma confirmação estrutural, jamais uma prova de que o lance é possível.
Casos de uso
Limpar uma coluna de lances importados
Rejeite textos SAN malformados antes de inseri-los em um banco de dados ou analisador de partidas.
Validar a entrada de um formulário
Forneça uma resposta imediata e consistente quando um jogador ou editor enviar um lance como texto.
Revisar conteúdo de xadrez gerado
Confira a sintaxe de lances produzidos por aulas, problemas, relatórios ou outras ferramentas determinísticas.
Perguntas frequentes
Um resultado válido significa que o lance é legal?
Não. Ele confirma apenas a sintaxe SAN. A legalidade exige posição, histórico e um motor de regras de xadrez.
Quais letras de peças são aceitas?
K, Q, R, B e N são aceitas em maiúsculas. Peões não recebem letra inicial em SAN.
Capturas, xeques e mates são compatíveis?
Sim. Use x para captura, + para xeque e # para mate nas posições definidas pela SAN.
A ferramenta reconhece roque e promoção?
Sim. Ela aceita O-O, O-O-O e promoções de peão com =Q, =R, =B ou =N.
Os espaços ao redor do lance são removidos?
Não. Espaços externos tornam a entrada inválida para manter visíveis os problemas de limpeza dos dados.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
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.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/game/chess-algebraic-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"notation":"Nbd2+"}'const res = await fetch("https://api.kit.forhosting.com/game/chess-algebraic-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"notation": "Nbd2+"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/chess-algebraic-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"notation": "Nbd2+"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/chess-algebraic-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"notation":"Nbd2+"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"notation":"Nbd2+"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/chess-algebraic-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"notation": "Nbd2+"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.chess_algebraic_validate",
"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.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Como usar o resultado em aplicativos e fluxos de dados
Envie exatamente um texto no campo notation. Espaços antes ou depois são rejeitados, e não removidos silenciosamente, para revelar dados sujos em colunas de banco de dados e importações linha a linha. Uma resposta bem-sucedida preserva o valor original e fornece campos estáveis que o software pode consultar sem analisar SAN novamente. move_type distingue peão, peça e roque. Movimentos de peça informam a letra SAN e o destino; peões são representados por P. capture é sempre booleano, enquanto origin_file, origin_rank, promotion e o lado do roque só aparecem quando forem aplicáveis. check e mate são booleanos separados. Um valor malformado gera invalid_input em vez de retornar valid como falso, comportamento adequado para interromper uma importação ou destacar o campo. A implementação é determinística, não acessa a rede e produz a mesma resposta no navegador e na API. O uso interativo é gratuito; a automação custa US$ 0,002 por solicitação.
Perguntas técnicas
Quanto custa validar pela API?
Cada solicitação API custa US$ 0,002. A versão para navegador desta página é gratuita.