Situación
Durante las reuniones sociales y juegos de mesa como el Rummy, la gestión de puntuaciones suele ser caótica. El uso de papel y lápiz es lento, propenso a errores matemáticos y no permite visualizar quién lleva realmente la ventaja a lo largo del tiempo, lo que resta competitividad y fluidez al juego.
Tarea
Decidí construir una WebApp responsive que automatizara el cálculo de puntos, eliminara el error humano y ofreciera una experiencia visualmente atractiva. El reto principal era permitir modificadores complejos (bonos y multiplicadores) que se pudieran aplicar con un solo toque, manteniendo la interfaz limpia y fácil de usar desde un teléfono móvil.
Acción
Para resolver esto, implementé las siguientes soluciones técnicas:
- Arquitectura Vanilla JS: Opté por JavaScript puro para garantizar la máxima velocidad de carga y ligereza, evitando frameworks innecesarios para una utilidad de este tipo.
- Persistencia con LocalStorage: Diseñé un sistema de guardado local para que la partida no se pierda si el usuario cierra la pestaña o recibe una llamada, mejorando la fiabilidad.
- Visualización de Datos con Chart.js: Implementé una página de estadísticas independiente que renderiza gráficos de líneas. Esto permite analizar la evolución de la partida, no solo ver el resultado final.
- Lógica de Modificadores (Estrella/x2): Programé una lógica de cálculo jerárquica que permite combinar bonos fijos con multiplicadores, facilitando las anotaciones rápidas en situaciones de juego intensas.
Galería del Proceso
Resultado
El despliegue de RummyStats logró eliminar por completo el uso de papel y la fricción del cálculo manual, reduciendo el tiempo de anotación entre rondas en un 50% y erradicando los errores aritméticos comunes. Gracias a la implementación de Chart.js, se transformó una lista estática de números en una experiencia competitiva visual, donde los jugadores pueden analizar tendencias y remontadas en tiempo real. La optimización del DOM y el uso de LocalStorage garantizaron una herramienta de alta disponibilidad que mantiene la integridad de los datos ante cierres inesperados, logrando una interfaz 100% fluida y profesional en cualquier dispositivo móvil.