ForHosting KIT · Utilidades de desarrollo

Validar un tablero de sudoku: filas, columnas y bloques

Una posición de sudoku puede parecer correcta y, aun así, contener una contradicción que inutilice cualquier intento posterior de resolverla.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Este validador revisa un tablero 9x9 parcialmente rellenado sin tratar de solucionarlo. Compara cada casilla ocupada con las reglas habituales de unicidad de filas, columnas y bloques 3x3, y devuelve tanto un resultado claro de validez como la ubicación exacta de las cifras duplicadas. Las casillas vacías se ignoran, por lo que usted puede comprobar un problema inicial, una partida en curso o una cuadrícula casi terminada.

Introduzca un tablero parcial con un formato fiable

Escriba exactamente nueve líneas, cada una con nueve casillas. Use las cifras del 1 al 9 para las casillas ocupadas y un punto o un cero para las vacías. Las filas compactas, como <code>53..7....</code>, facilitan copiar problemas desde texto plano; también puede separar las casillas mediante espacios o comas para mejorar la lectura. El validador elimina esos separadores antes de contar, pero no intenta interpretar otros símbolos. Esta distinción estricta resulta útil porque una cuadrícula mal formada no equivale a una posición de sudoku no válida: la primera no permite identificar 81 casillas de forma fiable, mientras que la segunda sí tiene la forma correcta, pero incumple una o varias reglas de unicidad. Si sobran o faltan filas, alguna contiene un número incorrecto de casillas o aparece un carácter no admitido, la solicitud devuelve un error de entrada. No se presupone que el problema tenga solución, que sus pistas sean simétricas ni que incluya suficientes datos. La entrada representa únicamente el estado actual del tablero.

Interprete los conflictos de filas, columnas y bloques

La comprobación aplica de manera independiente las tres reglas locales habituales. Una cifra ocupada no puede aparecer más de una vez en una fila horizontal, una columna vertical ni un bloque 3x3. Las casillas vacías no participan en las comparaciones. Si todas las cifras respetan las tres condiciones, el campo <code>valid</code> vale true y la lista de infracciones queda vacía. Cuando hay una repetición, cada infracción indica su tipo, su índice numerado desde uno, el valor repetido y todas las casillas que contienen ese valor en la unidad afectada. Las coordenadas de fila y columna también empiezan en uno, como en la descripción habitual de una cuadrícula. Un mismo par de cifras puede producir más de un aviso: si dos cincos están en la misma fila y en el mismo bloque superior izquierdo, infringen ambas restricciones y se comunican los dos hechos. El orden siempre es estable: primero filas, después columnas y finalmente bloques; dentro de cada unidad, las cifras van del 1 al 9. Así resulta sencillo probar, comparar, guardar o mostrar la respuesta.

Utilice la validación en el momento adecuado

Esta validación es un diagnóstico específico, no un solucionador ni una prueba de que el problema esté bien diseñado. Un resultado true solo confirma que las cifras escritas no duplican otra cifra ocupada en su fila, columna o bloque. El tablero aún podría carecer de solución por una contradicción más profunda, admitir varias soluciones o tener una disposición de pistas poco apropiada para su publicación. Por eso conviene usar la herramienta como control temprano. Un editor puede ejecutarla después de cada cambio para señalar errores inmediatos. Un proceso de importación puede rechazar cuadrículas dañadas o mal copiadas antes de enviarlas a un solucionador más costoso. Una aplicación educativa puede revisar las respuestas actuales sin revelar la solución. El algoritmo recorre siempre 81 casillas y no realiza solicitudes de red, de modo que su comportamiento es rápido y reproducible. La versión del navegador sirve para comprobaciones interactivas; los sistemas automáticos pueden enviar el mismo tablero a la API por $0.002 por solicitud. En ambos casos, diferencie una entrada mal formada de un tablero bien formado cuyo resultado <code>valid</code> sea false.

Detectar errores de transcripción

Revise una cuadrícula copiada para localizar pistas repetidas antes de guardarla o enviarla a un solucionador.

Orientar al jugador sin revelar la respuesta

Identifique las filas, columnas y bloques con conflictos inmediatos sin mostrar la solución del problema.

Controlar problemas importados

Rechace cuadrículas mal formadas como errores de entrada y marque posiciones bien formadas pero ilegales mediante una respuesta estructurada y previsible.

¿Un resultado válido garantiza que el sudoku pueda resolverse?

No. Solo indica que las casillas ocupadas actuales no infringen la unicidad de filas, columnas o bloques 3x3. No comprueba si existe solución ni si esta es única.

¿Cómo se representan las casillas vacías?

Use un punto o la cifra cero. Ambos se consideran espacios vacíos y no intervienen en la detección de duplicados.

¿Puedo separar las casillas con espacios o comas?

Sí. Se admiten espacios, comas y barras verticales como separadores visuales. Tras eliminarlos, cada fila debe contener exactamente nueve casillas.

¿Por qué puede aparecer el mismo par de casillas en dos infracciones?

Una repetición puede incumplir varias reglas a la vez, por ejemplo, cuando pertenece a la misma fila y al mismo bloque 3x3. Cada unidad afectada se comunica por separado.

¿Cuánto cuesta una solicitud de API?

Cada solicitud de API cuesta $0.002. La versión interactiva del navegador se ejecuta localmente de forma gratuita.

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.

POSThttps://api.kit.forhosting.com/game/sudoku-validate-board

¿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.

curl -X POST https://api.kit.forhosting.com/game/sudoku-validate-board \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"board":"53..7....\n6..195...\n.98....6.\n8...6...3\n4..8.3..1\n7...2...6\n.6....28.\n...419..5\n....8..79"}'
{
  "board": "53..7....\n6..195...\n.98....6.\n8...6...3\n4..8.3..1\n7...2...6\n.6....28.\n...419..5\n....8..79"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "game.sudoku_validate_board",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →