Slide Rush
Juego de puzzle deslizante donde reconstruyes imágenes moviendo piezas en una cuadrícula dinámica de 3×3 hasta 10×10.
Gameplay
Sobre el proyecto
Slide Rush es un juego de lógica basado en el clásico puzzle deslizante. El jugador debe reorganizar piezas de una imagen dentro de una cuadrícula que varía desde 3×3 hasta 10×10, utilizando un sistema de movimiento con un espacio vacío.
El objetivo es reconstruir la imagen original en el menor número de movimientos posible, aumentando progresivamente la dificultad al incrementar el tamaño de la cuadrícula.
Fue desarrollado como proyecto personal con foco en lógica de juego, diseño de mecánicas y desarrollo mobile con Unity.
Características
Cuadrícula dinámica
Desde 3×3 hasta 10×10 — la dificultad crece con el tamaño.
Mezcla válida garantizada
El algoritmo solo genera estados que tienen solución.
Contador de movimientos
El jugador ve cuántos movimientos llevó reconstruir la imagen.
Múltiples imágenes
Varias imágenes jugables integradas al sistema de puzzle.
Movimiento con espacio vacío
Mecánica clásica: solo las piezas adyacentes al hueco pueden moverse.
Optimizado para móvil
UI simple, touch-friendly, pensada para pantallas pequeñas.
Capturas de pantalla
Desliza para ver todas las pantallas.
Haz clic en cualquier imagen para ampliarla
Implementación técnica
Lógica de matriz 2D
El tablero se representa como un array bidimensional de enteros. Cada número corresponde a una pieza; el 0 es el espacio vacío.
Validación de movimientos
Solo se permiten intercambios entre la pieza seleccionada y el espacio vacío cuando son adyacentes (N/S/E/O), evitando estados inválidos.
Shuffling resoluble
Se usa Fisher-Yates aplicado mediante movimientos legales (no random swap) para garantizar que cualquier estado generado sea resoluble.
Detección de victoria
Tras cada movimiento se compara el estado actual con el estado objetivo (1→N, 0 al final). Si coinciden, se dispara el flujo de victoria.
Grid escalable
El tamaño N se pasa como parámetro al inicializar el puzzle. Unity recalcula el tamaño visual de cada pieza automáticamente según N.
Puzzles irresolubles
El mayor reto fue garantizar que cada estado generado por el shuffler fuera resoluble. Un random swap directo produce ~50% de estados imposibles. La solución fue aplicar Fisher-Yates únicamente a través de movimientos legales, partiendo siempre del estado resuelto — esto garantiza que cualquier estado alcanzado sea resoluble por construcción.
Resultado: 100% de puzzles jugables sin necesidad de algoritmos de verificación de paridad.
Lo que aprendí
- Diseño de mecánicas basadas en lógica y estructuras de datos
- Manejo de matrices 2D para representar estados de juego
- Desarrollo de sistemas de dificultad escalable
- Optimización de UI para dispositivos móviles con Unity
- Importancia del testing de edge cases en lógica de puzzles
Si lo rehago…
- Animaciones fluidas al deslizar piezas (tweening con DOTween)
- Sistema de niveles con progresión guardada localmente
- Modo contrarreloj con tabla de clasificación
- Soporte para imágenes del carrete del usuario
- Efectos de partículas al completar el puzzle
Estado del proyecto
Este proyecto ya no está disponible públicamente y el código fuente no es accesible actualmente. Fue desarrollado como proyecto personal enfocado en lógica de juego y diseño de mecánicas.