Buscaminas CLI con Node.js (Parte 2 de 3)

Buscaminas CLI con Node.js - Parte 2: interfaz en terminal, bucle de juego, comandos rROW,COL y fROW,COL, validaciones y detección de victoria/derrota.

28 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Bienvenido a Buscaminas CLI con Node.js Parte 2 de 3, la segunda entrega donde convertimos la estructura de datos y la lógica de minas en un juego completamente jugable desde la terminal.

Resumen de lo que añadimos en esta parte: una interfaz limpia en terminal con encabezados y separadores, un bucle de juego con aviso visible, un analizador de comandos para rROW,COL para revelar y fROW,COL para marcar, validaciones de entrada con mensajes de error útiles, y comprobaciones de victoria y derrota para terminar la partida correctamente.

Paso 6 Prepare el bucle de juego: inicializar la pantalla y mostrar al usuario como jugar. Limpiar la pantalla normalmente se hace escribiendo el código de escape ESC para eliminar la salida previa. Mostrar un mensaje de bienvenida que indica los comandos permitidos y dibujar la cuadrícula formateada con encabezados de columnas y filas, separadores y símbolos para estados de casilla.

Convenciones visuales: usar el caracter ¦ para casillas no reveladas, numeros para casillas reveladas que indican minas adyacentes, ? para casillas marcadas y * para una mina explotada. Tambien mostrar un aviso con un simbolo mayor que para que el usuario introduzca comandos como r0,3 para revelar o f2,4 para marcar.

Paso 7 Leer y parsear la entrada: configurar un listener sobre stdin para procesar cada linea cuando el usuario pulsa ENTER. Limpiar la entrada con trim y luego validar su formato.

Paso 8 Validar el formato de comando: emplear una expresion regular que capture un comando que empiece por r o f seguido de dos numeros separados por coma. Si no coincide, limpiar pantalla, mostrar un mensaje de error, redibujar la cuadricula y reimprimir el prompt.

Paso 9 Validar posicion de casilla: si el comando tiene el formato correcto convertir los grupos en entero y comprobar que fila y columna estan dentro de los limites de la cuadricula. Si estan fuera mostrar error, redibujar y pedir otra entrada.

Paso 10 Revelar casilla: si el comando es rROW,COL marcar la casilla como revelada y redibujar. Si la casilla era una mina mostrar mensaje de game over y terminar el proceso. Tras revelar comprobar si se han descubierto todas las casillas seguras y en ese caso declarar la victoria y salir.

Para comprobar que todas las casillas seguras estan reveladas se calcula el numero maximo de casillas que deben mostrarse restando el numero de minas del total de casillas y comparando con el contador de casillas seguras reveladas. Si coinciden hay victoria.

Paso 11 Marcar casilla: mantener una variable flags inicializada al numero de minas disponible, normalmente igual al tamano o al conteo de minas. Si el usuario revela una casilla que estaba marcada, desmarcarla y devolver una bandera al contador. Si el comando es de marcado fROW,COL gestionar tres casos: si no hay banderas disponibles informar del error; si la casilla ya esta marcada desmarcar y aumentar las banderas; si la casilla aun no esta revelada marcarla y disminuir las banderas. Cada accion debe limpiar pantalla, redibujar la cuadricula y mostrar el prompt.

Comprobar banderas correctas: implementar una funcion que recorra la cuadricula y cuente las minas marcadas correctamente. Si ese contador coincide con el numero total de minas declarar victoria y terminar.

Orden de ejecucion recomendada dentro de la funcion principal autoejecutable: parsear tamano, crear cuadricula, inicializar flags, limpiar pantalla, mostrar bienvenida, dibujar cuadricula y mostrar prompt. Luego entrar en el listener de stdin que gestiona validacion, revelado, marcado, mensajes de error y comprobaciones de fin de partida.

Buenas practicas y mejoras: encapsular la logica de redibujado en funciones separadas printGrid printWelcome printPrompt clearScreen para mantener el flujo claro. Separar la logica de comprobacion de victoria en funciones checkRevealedSquares y checkFlaggedMines facilita pruebas y futuras extensiones como guardado de puntuacion o modos de dificultad.

Q2BSTUDIO y como podemos ayudar: si te interesa profesionalizar este prototipo en una aplicacion multiplataforma o integrar estas ideas en una solucion empresarial, en Q2BSTUDIO somos especialistas en desarrollo de software a medida y aplicaciones a medida, con experiencia en inteligencia artificial, ciberseguridad y servicios cloud. Podemos transformar tu juego o prototipo en un producto robusto y escalable y ayudarte a integrar agentes IA y funcionalidades de ia para empresas.

Si necesitas una aplicacion a medida visita servicios de desarrollo de aplicaciones y software a medida y para explorar como aplicar inteligencia artificial en tu negocio consulta nuestras soluciones de inteligencia artificial. Tambien ofrecemos ciberseguridad y pentesting, servicios cloud aws y azure, servicios de inteligencia de negocio y Power BI para obtener insights de tus datos.

Conclusiones: tras completar estos pasos tendras un Buscaminas funcional desde la terminal en un unico fichero Node.js que puedes extender con guardado de puntuaciones, interfaz grafica o integracion con servicios cloud. En la Parte 3 abordaremos como almacenar nombre de jugador puntuacion y duracion en disco para crear una pantalla de high scores y como conectar esa informacion con reporting tipo power bi para analitica.

En Q2BSTUDIO desarrollamos soluciones a medida que cubren desde el prototipo hasta produccion, incluyendo integracion de inteligencia de negocio, servicios cloud AWS y Azure, agentes IA y ciberseguridad para proteger tus datos. Si te interesa colaborar estamos listos para ayudarte a convertir tu idea en producto.

¿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