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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat