Validar notación algebraica de ajedrez
Nbd2+ está bien escrita: un caballo de la columna b va a d2 y da jaque. Escriba una jugada para confirmar que sigue la notación algebraica estándar y ver la pieza, la casilla de destino, la captura, el jaque o la coronación. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Notación
- Nbd2+
- Tipo de jugada
- piece
- Pieza
- N
- Destino
- d2
- Columna de origen
- b
Este validador de notación algebraica comprueba si una jugada respeta la sintaxis de la Notación Algebraica Estándar, conocida como SAN. Reconoce movimientos de peones y piezas, capturas, desambiguación de origen, promociones, enroques, jaques y mates. La comprobación es exclusivamente sintáctica: no necesita una posición del tablero ni afirma que la jugada sea legal en una partida concreta. Úselo para detectar cadenas mal formadas antes de guardar, importar, mostrar o procesar datos de ajedrez.
Qué reconoce el validador
La Notación Algebraica Estándar resume una jugada de ajedrez en una cadena breve y estructurada. Una jugada de pieza comienza con una de las letras mayúsculas K, Q, R, B o N; después puede incluir la desambiguación del origen, un indicador de captura y una casilla de destino como e4 o h8. Las jugadas de peón omiten la letra de pieza: e4 es un avance sin captura, mientras que exd5 indica que el peón de la columna e captura en d5.
Las promociones añaden un signo igual y Q, R, B o N, como en e8=Q o fxg8=N. También se admiten O-O y O-O-O para el enroque corto y largo. Un signo más final representa jaque y una almohadilla final, mate.
Las letras distinguen mayúsculas y minúsculas. El resultado identifica el tipo de jugada, destino, captura, jaque, mate y cualquier dato de origen o promoción presente.
Comprobar la sintaxis no es comprobar la legalidad
La herramienta responde a una pregunta concreta: ¿la cadena tiene la forma de una jugada SAN? No recibe el tablero, el historial, el turno, los derechos de enroque ni el estado de captura al paso, por lo que no puede determinar si una pieza llega realmente a la casilla indicada. Por ejemplo, Nf3 es sintácticamente válido aunque en una posición dada no exista un caballo capaz de llegar a f3.
Del mismo modo, acepta un indicador de jaque bien situado sin demostrar que el rey rival esté atacado. Separar ambos controles resulta útil en las importaciones, porque los errores de escritura y los errores reglamentarios requieren respuestas distintas. Una columna incompleta, una letra de pieza minúscula, una captura mal colocada, una columna inválida o un sufijo no admitido se rechazan sin reconstruir la partida.
Después puede aplicar un motor con tablero para verificar la legalidad. El campo valid confirma solo la estructura, nunca la posibilidad real de la jugada.
Qué puede hacer con ella
Limpiar una columna de jugadas importada
Rechace cadenas SAN defectuosas antes de incorporarlas a una base de datos o a un analizador de partidas.
Validar datos de un formulario
Ofrezca una respuesta inmediata y uniforme cuando un jugador o editor envíe una jugada como texto.
Revisar contenido de ajedrez generado
Compruebe la sintaxis de jugadas creadas por lecciones, problemas, informes u otras herramientas deterministas.
Preguntas frecuentes
¿Un resultado válido significa que la jugada es legal?
No. Solo confirma la sintaxis SAN. Para comprobar la legalidad hacen falta una posición, el historial y un motor de reglas.
¿Qué letras de piezas se admiten?
Se admiten K, Q, R, B y N en mayúscula. En SAN, los peones no llevan letra inicial.
¿Admite capturas, jaques y mates?
Sí. Use x para una captura, + para jaque y # para mate en sus posiciones SAN correspondientes.
¿Reconoce el enroque y la promoción?
Sí. Admite O-O, O-O-O y promociones de peón con =Q, =R, =B o =N.
¿Elimina los espacios alrededor de una jugada?
No. Los espacios exteriores se consideran una entrada defectuosa para que los problemas de limpieza permanezcan visibles.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"notation": "Nbd2+"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.chess_algebraic_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo usar el resultado en aplicaciones y flujos de datos
Envíe exactamente una cadena en el campo notation. Los espacios exteriores se rechazan en vez de eliminarse de forma silenciosa, lo que permite descubrir datos sucios en columnas de bases de datos e importaciones por líneas. Una respuesta correcta conserva la cadena original y ofrece campos estables que su software puede consultar sin analizar SAN de nuevo. move_type distingue entre peón, pieza y enroque. Las piezas incluyen su letra SAN y el destino; los peones se representan con P. capture siempre es un booleano, mientras que origin_file, origin_rank, promotion y el lado del enroque solo aparecen cuando corresponden. check y mate son valores booleanos independientes. Una entrada defectuosa produce invalid_input, en lugar de devolver valid como falso, para detener una importación o señalar el campo. La implementación es determinista, no usa red y ofrece el mismo resultado en navegador y API. El uso interactivo es gratuito; la automatización cuesta $0.002 por solicitud.
Preguntas técnicas
¿Cuánto cuesta la validación mediante API?
Cada solicitud API cuesta $0.002. La versión de navegador de esta página es gratuita.