ForHosting KIT · Utilidades de desarrollo

Compruebe el ganador, empate o partida de tres en raya

Este comprobador de ganador de tres en raya lee un tablero 3x3 completo o parcial y determina su resultado actual.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Indica si ha ganado X u O, si un tablero lleno termina en empate o a quién corresponde el siguiente turno cuando la partida puede continuar. También rechaza tableros mal formados y cantidades imposibles de fichas X y O, por lo que sirve para validar partidas guardadas, probar lógica de juegos, revisar ejercicios y alimentar aplicaciones pequeñas sin depender de conjeturas ni inspecciones visuales.

Introduzca el tablero en un formato claro de tres líneas

Proporcione exactamente tres filas con tres casillas en cada una. Use X para el primer jugador, O para el segundo y un guion para cualquier casilla vacía. Puede colocar espacios entre las casillas para facilitar la lectura, como en X O X, porque se ignoran los espacios en blanco dentro de cada fila. Mantenga cada fila del tablero en su propia línea. El comprobador trata las letras x y o minúsculas como sus equivalentes mayúsculas, pero rechaza cualquier otro carácter de casilla. Este formato estricto facilita escribir, pegar, guardar como caso de prueba o generar el tablero desde una aplicación, a la vez que evita símbolos ambiguos. El primer jugador siempre es X, de acuerdo con el orden habitual del tres en raya. Por tanto, un tablero vacío consta de tres filas de tres guiones, y un tablero parcial conserva un guion donde nadie haya jugado. Si hay demasiadas o muy pocas filas, una fila tiene un número incorrecto de casillas o aparece una marca no admitida, la solicitud devuelve un error de entrada en lugar de intentar reparar o reinterpretar la posición. Así, las comprobaciones automatizadas siguen siendo previsibles.

Interprete la detección de victorias y empates

El comprobador examina las ocho líneas ganadoras posibles: tres filas horizontales, tres columnas verticales y las dos diagonales. Un jugador gana cuando una o varias de esas líneas contienen tres marcas iguales. La respuesta ganadora identifica al jugador y devuelve todas las líneas vencedoras como pares de coordenadas de fila y columna. Las coordenadas empiezan en uno, por lo que la casilla superior izquierda es fila 1, columna 1. Devolver todas las líneas coincidentes resulta importante cuando el último movimiento completa dos líneas a la vez. Si ningún jugador tiene una línea ganadora y todas las casillas están ocupadas, el resultado es un empate. Si quedan casillas vacías, la partida se declara en curso y la respuesta identifica al siguiente jugador según la cantidad de marcas. El algoritmo es determinista y solo recorre las nueve casillas y las ocho líneas conocidas. No utiliza aleatoriedad, servicios de red, estado almacenado ni suposiciones sobre movimientos que no estén representados en el tablero. Un mismo tablero siempre produce el mismo resultado estructurado, lo que hace que la capacidad sea apropiada para pruebas unitarias y validaciones repetibles.

Detecte posiciones que no pueden surgir en una partida legal

Un tablero puede parecer plausible y, aun así, incumplir el orden de juego. Como X mueve primero y los jugadores se alternan, X debe tener la misma cantidad de marcas que O o exactamente una más. El comprobador rechaza una posición si O ha jugado más veces que X o si X lleva una ventaja de dos movimientos o más. También contrasta una victoria con esas cantidades: para que gane X debe haber una marca X adicional, mientras que una victoria de O exige cantidades iguales. Se rechaza un tablero donde ambos jugadores tengan líneas ganadoras, porque la partida debería haberse detenido tras la primera victoria válida. Estas comprobaciones son especialmente útiles cuando los tableros proceden de entradas de usuarios, registros de bases de datos, tutoriales, ejercicios de entrevistas o un motor de juego personalizado en desarrollo. Impiden que una posición imposible se etiquete por error como victoria o empate válido. La capacidad evalúa la instantánea proporcionada, no reconstruye todo el historial de movimientos, por lo que la validación se centra en los hechos que un tablero 3x3 puede demostrar directamente. En una posición válida sin terminar, use next_player para continuar con la marca correcta.

Pruebe un motor de juego

Compare el tablero guardado por su aplicación con un resultado determinista durante las pruebas automatizadas.

Valide problemas enviados

Rechace posiciones mal formadas o con turnos incoherentes antes de calificar la respuesta de una persona.

Reanude una partida guardada

Determine si el juego ha terminado e identifique al siguiente jugador correcto en un tablero sin finalizar.

¿Qué formato de tablero debo usar?

Envíe tres líneas de tres casillas y use X, O y - para una casilla vacía. Los espacios entre casillas son opcionales.

¿Se admiten letras minúsculas?

Sí. Las letras x y o minúsculas se convierten a mayúsculas antes de comprobar el tablero.

¿Cómo se representan las líneas ganadoras?

Cada línea ganadora es una matriz de tres pares de coordenadas de fila y columna que empiezan en uno.

¿Cuándo es inválida la cantidad de X y O?

O nunca puede tener más marcas que X, y X no puede tener más de una marca adicional porque empieza y los turnos se alternan.

¿Cuánto cuesta?

Cada solicitud API cuesta $0.002. La versión para navegador puede ejecutarse localmente en la página.

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/tic-tac-toe-winner-check

¿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/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"
  }
}

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 →