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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat