Slide puzzle 3×3
Configuración
A* suele ser más rápido; BFS también es óptimo pero puede explorar muchos más estados. En 4×4 se fuerza A*.
En modo diagonal se permite mover fichas también en diagonal hacia el vacío.
Usa números 0..8. El 0 es el vacío.
Usa números 0..8. El 0 es el vacío.
Revela la solución gradualmente.
Permite que el usuario haga sus movimientos.
Resultados
Ingresa inicial y objetivo, luego ejecuta.
Top 5 - Menos movimientos
Sin récords aún
Minijuego (movimientos del usuario)
Regla: solo puedes mover fichas adyacentes al vacío. El 0 es vacío y no se mueve como ficha.
Secuencia completa de pasos
Aún no hay resultados.
Detalle del algoritmo (1–5)
1) Determinar los objetos del sistema
- Tablero: matriz 3×3 representada como board[9] con valores 0..8.
- Fichas: números 1..8.
- Vacío: valor 0.
- Estado: una configuración completa del tablero + posición del vacío.
- Operadores: mover el vacío U, D, L, R internamente (swap de 0 con una ficha adyacente). En la explicación, lo que se mueve es la ficha hacia el vacío.
- Solver: A* (heurístico) que calcula la ruta mínima hacia la meta.
- Web Worker: ejecuta el solver en segundo plano para no bloquear la UI.
2) Definir estados del problema
Identificador de estado: "v0,v1,...,v8". Existen (3²)! configuraciones, pero solo una parte es alcanzable según la paridad.
3) Reglas
- Solo se mueve una ficha si está adyacente al vacío.
- El vacío (0) no se mueve como pieza: la acción válida es deslizar una ficha hacia el vacío (internamente es un swap con 0).
- Victoria cuando el tablero actual es exactamente igual al estado meta.
- Solubilidad (3×3): debe cumplirse paridad(inversiones(inicial)) = paridad(inversiones(meta)).
- Optimalidad: A* (Manhattan admisible) ⇒ mínimo # de movimientos.
4) El cuadrado / casilla
Para resolver, se calculan vecinos por coordenadas. La “casilla” es el modelo conceptual (como tu cuadro del puzzle).
5) Paso a paso (según los números que ingreses)
Ejecuta “Resolver (óptimo)” para generar el paso a paso.
Tabla: Estado inicial - Regla - Condición - Estado final
| Estado inicial | Regla | Condición | Estado final |
|---|---|---|---|
| (x, y) | Mover ficha de arriba al vacío | x > 0 | (x-1, y) |
| (x, y) | Mover ficha de abajo al vacío | x < 2 | (x+1, y) |
| (x, y) | Mover ficha de la izquierda al vacío | y > 0 | (x, y-1) |
| (x, y) | Mover ficha de la derecha al vacío | y < 2 | (x, y+1) |
Ejecuta “Resolver” para generar la tabla detallada por movimientos.
Nota: Se usa A* con heurística Manhattan (admisible), por lo que la solución es óptima (mínimo número de movimientos).