Buscaminas CLI con Node.js (Parte 3/3)

Buscaminas CLI en Node.js – Parte 3: añade registro de usuario, puntuaciones persistentes en scores.json y un top 10. Control del tiempo, casillas reveladas y minas marcadas vía comandos.

29 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Buscaminas CLI con Node.js (Parte 3/3) En esta tercera y última entrega completamos la versión terminal del clásico Buscaminas agregando registro de jugador, puntuaciones y una tabla de mejores marcadores para cada partida.

Resumen rápido De las partes anteriores ya tienes la interfaz en terminal, el bucle del juego, el parseo y validación de comandos y las comprobaciones de victoria y derrota. En esta entrega añadimos la petición de nombre de usuario, el seguimiento del marcador durante la partida y el almacenamiento y presentación de las mejores puntuaciones en un archivo JSON.

Pedir nombre de usuario Modifica la función printWelcome para solicitar al jugador que introduzca su nombre y crea una función separada printCommands que muestre las instrucciones de uso. En la IIFE declara una variable username inicialmente indefinida. Al recibir datos por stdin, si username no tiene valor asignado, guarda la primera línea como nombre de usuario, muestra las instrucciones, dibuja la cuadrícula y muestra el prompt. Los comandos que debe entender el juego son rROW,COL para revelar y fROW,COL para marcar o desmarcar una casilla, por ejemplo r0,3 o f2,4.

Seguimiento del score Crea un objeto score con las propiedades time, revealed, flagged y exploded. time almacenará el instante de inicio en milisegundos, revealed contará casillas seguras reveladas, flagged las minas correctamente marcadas y exploded indicará si el jugador ha explotado una mina.

Control del tiempo Asigna score.time con Date.now() cuando el jugador ejecuta su primer comando válido. Al producirse victoria o derrota calcula la duración como diferencia entre ahora y score.time y divídela por 1000 para obtener segundos.

Contar casillas reveladas Al procesar un comando de tipo revelar marca la casilla como revelada y si no contiene mina incrementa score.revealed. Si la casilla estaba marcada, quítale la bandera y ajusta el contador de banderas disponible.

Contar minas marcadas Al alternar una bandera decrementa o incrementa score.flagged según corresponda. Si una bandera se quita porque la casilla fue revelada o porque se desmarca, decrementa score.flagged cuando se descubre que no era mina. Si se marca una casilla que contiene una mina y está sin revelar, incrementa score.flagged.

Detección de explosión Si una casilla revelada contiene una mina, asigna score.exploded true y calcula el tiempo total antes de terminar la partida con un mensaje de derrota.

Cálculo de puntos Define una función calculatePoints que devuelva 10 por cada casilla segura revelada más 25 por cada mina correctamente marcada y un bono de 100 puntos si el jugador no ha explotado una mina. Fórmula puntos igual a 10 por revealed más 25 por flagged más 100 si exploded es false.

Guardar las puntuaciones en fichero Crea un fichero scores.json en el mismo directorio que el script y utiliza el módulo fs de Node para leer y escribir en él. Implementa updateScores que lee y parsea el JSON, añade el nuevo registro con username, puntos y tiempo, escribe el array actualizado y devuelve la lista completa. Usa un bloque try catch para gestionar errores de E S de forma elegante.

Imprimir puntuación y top 10 Implementa printScore para mostrar nombre de usuario, puntos totales, tiempo en segundos, casillas reveladas y minas marcadas correctamente. Ordena la lista de puntuaciones por puntos de mayor a menor y en caso de empate utiliza el tiempo menor como criterio de desempate. Corta la lista a las 10 primeras entradas y muéstralas numeradas como tabla de mejores.

Integración final En los puntos de finalización de partida, tanto en derrota como en victoria, invoca updateScores con username y score, después invoca printScore con los datos devueltos y termina el proceso. De este modo el registro de la partida queda persistido y el jugador puede comparar su rendimiento con el top 10.

Buenas prácticas y extensiones sugeridas Considera serializar con indentación para facilitar la edición manual de scores.json, proteger la lectura y escritura frente a condiciones de carrera si varias instancias modifican el archivo simultáneamente y ofrecer opciones avanzadas como exportar o limpiar el ranking. También puedes ampliar la CLI con modos de dificultad o integración con bases de datos para entornos multiusuario.

Sobre Q2BSTUDIO y servicios relacionados Si buscas llevar una idea a producción con aplicaciones a medida y software a medida, en Q2BSTUDIO somos especialistas en desarrollo de soluciones a medida y podemos ayudarte a convertir este tipo de proyectos en productos robustos y mantenibles. Conecta tu aplicación con soluciones cloud y despliegues gestionados en plataformas como AWS y Azure con nuestros servicios cloud. Consulta nuestro apartado de desarrollo de aplicaciones y software a medida en desarrollo de aplicaciones y software a medida y descubre nuestras capacidades en inteligencia artificial y automatización en soluciones de inteligencia artificial para empresas.

Palabras clave y capacidades destacadas Q2BSTUDIO ofrece experiencia en aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Podemos integrar análisis con Power BI, pipelines de datos, agentes conversacionales IA y servicios de seguridad y pentesting para asegurar el ciclo de vida completo de la solución.

Contacto y próximos pasos Si te interesa profesionalizar este proyecto o integrar sus ideas en un producto escalable, ponte en contacto con nosotros y te guiaremos desde la validación del concepto hasta el despliegue en producción con prácticas de ciberseguridad y operaciones cloud. Q2BSTUDIO combina experiencia técnica y orientación al negocio para proyectos con inteligencia de negocio y automatización de procesos.

Conclusión Con estos cambios tu Buscaminas CLI pasa de ser un juego local a una pequeña experiencia completa con tracking de jugadores y ranking persistente. Es una base excelente para seguir mejorando y conectar con servicios profesionales como los que ofrecemos en Q2BSTUDIO en desarrollo de aplicaciones, inteligencia artificial y servicios cloud.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat