Comprobar un paso válido de escalera de palabras
De «cold» a «cord» es un paso válido porque solo cambia la tercera letra; la herramienta cuenta cada diferencia y muestra su posición, así puede explicar sin dudas por qué un paso no vale. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Palabra A
- cold
- Palabra B
- cord
- Diferencias
- 1
- Posiciones distintas
- 3
Una escalera de palabras transforma una palabra en otra mediante una secuencia de cambios mínimos, sustituyendo exactamente una letra en cada paso. Este comprobador evalúa uno de esos movimientos: usted proporciona dos palabras de igual longitud y recibe un informe que indica si difieren en una única posición. También devuelve la cantidad de diferencias y sus posiciones numeradas desde uno, por lo que resulta sencillo explicar un resultado no válido. La comparación es determinista y distingue mayúsculas de minúsculas; las longitudes desiguales se rechazan como errores de entrada.
Introduzca ambas palabras tal como deban compararse
Los dos valores deben ser cadenas no vacías con el mismo número de caracteres. El comprobador conserva la entrada exactamente: no elimina espacios, no convierte mayúsculas en minúsculas, no descarta signos, no aplica normalización Unicode ni consulta un diccionario. Este comportamiento estricto conviene cuando el juego o la aplicación ya controla el vocabulario permitido.
Por ejemplo, <code>cold</code> y <code>cord</code> tienen igual longitud y solo difieren en la tercera posición, por lo que forman un paso válido. En cambio, <code>Cold</code> y <code>cold</code> también cuentan como una diferencia porque la comparación distingue mayúsculas. Si las reglas de su juego no las distinguen, normalice ambas entradas de la misma forma antes de llamar a la capacidad.
La longitud igual es un requisito estructural, no parte del veredicto. Cuando difiere, la solicitud devuelve un error, pues no es posible alinear las posiciones según la regla de sustitución. Las inserciones y eliminaciones pertenecen a problemas de distancia de edición, no a esta comprobación.
Interprete el veredicto y los campos de diagnóstico
Esta numeración concuerda con la forma habitual de contar letras: la posición 1 es el primer carácter. Dos palabras idénticas generan un resultado normal con cero diferencias y <code>valid</code> en false, porque un paso debe cambiar realmente una letra. Dos o más sustituciones también devuelven false e incluyen todas las posiciones afectadas.
Solo los valores mal formados, los campos ausentes, las cadenas vacías o las longitudes diferentes producen un error de entrada. Esta separación permite distinguir un movimiento bien formado pero ilegal de una solicitud que no puede evaluarse.
Integre la comprobación en un flujo completo de escalera
Esta capacidad verifica la forma de un movimiento, pero deliberadamente no decide si las entradas son palabras reconocidas. Un juego completo suele aplicar dos controles independientes: primero confirma que la propuesta pertenece al diccionario, idioma o vocabulario del acertijo; después verifica aquí que la transición modifica exactamente una posición. Separar ambas responsabilidades evita suposiciones ocultas sobre nombres propios, grafías regionales, caracteres acentuados, flexiones o términos especializados.
En un juego interactivo, invoque el comprobador cuando una persona envíe un movimiento y use la posición devuelta para resaltar la letra cambiada. En una herramienta de creación, ejecútelo sobre cada pareja adyacente de una solución para localizar enlaces rotos. En pruebas automatizadas, compruebe tanto el veredicto como las posiciones para que una cadena fallida se explique por sí misma.
La implementación pura no usa red, azar, reloj, almacenamiento ni modelos externos.
Qué puede hacer con ella
Validar el movimiento de un jugador
Confirme que la siguiente palabra propuesta cambia exactamente un carácter antes de añadirla a la escalera activa.
Auditar la solución de un acertijo
Compruebe cada pareja vecina de una cadena preparada e identifique las posiciones exactas de los enlaces no válidos.
Probar software de juegos de palabras
Use recuentos y posiciones deterministas como aserciones para validar movimientos, resaltados y mensajes de error.
Preguntas frecuentes
¿Comprueba la herramienta que ambas entradas sean palabras reales?
No. Solo comprueba la regla de sustitución en una posición. Valide aparte la pertenencia al diccionario adecuado para su juego.
¿Qué ocurre si las palabras tienen distinta longitud?
La solicitud devuelve un error de entrada no válida. Un paso estándar sustituye un carácter y no inserta ni elimina caracteres.
¿Se consideran iguales las letras mayúsculas y minúsculas?
No. La comparación distingue mayúsculas, por lo que cuentan como caracteres diferentes. Normalice las entradas antes si sus reglas ignoran el caso.
¿Son las palabras idénticas un paso válido?
No. Las palabras idénticas tienen cero diferencias, pero un paso válido exige exactamente una posición diferente.
¿Cómo se numeran las posiciones diferentes?
La numeración empieza por uno: 1 corresponde al primer carácter, 2 al segundo y así sucesivamente.
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/word-ladder-step-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"word_a":"cold","word_b":"cord"}'const res = await fetch("https://api.kit.forhosting.com/game/word-ladder-step-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"word_a": "cold",
"word_b": "cord"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/word-ladder-step-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"word_a": "cold",
"word_b": "cord"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/word-ladder-step-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"word_a":"cold","word_b":"cord"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"word_a":"cold","word_b":"cord"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/word-ladder-step-check", 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
{
"word_a": "cold",
"word_b": "cord"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.word_ladder_step_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.
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
Introduzca ambas palabras tal como deban compararse
Escriba la palabra inicial en <code>word_a</code> y la siguiente propuesta en <code>word_b</code>.
Interprete el veredicto y los campos de diagnóstico
La respuesta contiene <code>valid</code>, <code>differences</code> y <code>differing_positions</code>. El booleano <code>valid</code> solo vale true cuando existe exactamente una discrepancia. <code>differences</code> indica el número total de posiciones cuyos caracteres no coinciden, mientras que <code>differing_positions</code> enumera esas posiciones empezando por uno. El algoritmo recorre el par una sola vez de izquierda a derecha, así que el orden es estable y las llamadas repetidas con la misma entrada siempre producen los mismos valores JSON.
Integre la comprobación en un flujo completo de escalera
Por eso puede ejecutarse localmente en el navegador, mientras los sistemas automatizados pueden llamar a la API por $0.002 por solicitud y obtener el mismo resultado determinista.
Preguntas técnicas
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. La versión interactiva del navegador se ejecuta localmente sin coste.