Buscaminas en Python - Programación de juego

Buscaminas en Python – Programación de juego

En mi blog ya te he enseñado a programar el juego de buscaminas en varios lenguajes pero hoy vamos a programarlo con Python.

Será el mismo juego en donde interactúas a través de la terminal y se imprime el tablero del juego buscaminas con las celdas que tiene y el conteo de minas cercanas o un asterisco.

Recuerda que todo esto lo vamos a programar usando Python y algunas listas.

Enunciado

Debes crear un programa en Python que le permita al usuario jugar al juego Buscaminas, considerando que posee 6×6 casillas y 3 minas.

En la figura 1(a) se muestra la interfaz que debes lograr en el programa que construyas. Observa que las filas se referencian con las letras mayúsculas entre la A y la F, y las columnas con números entre el 1 y el 6.

Para simular casillas “cerradas” debes usar un punto “.”. Para referenciar una casilla en particular debes escribir primero la fila (letra) y luego la columna (número).

En el ejemplo la casilla que está destacada en el círculo rojo es la E2. En la figura 1(b), puedes observar el detalle de la impresión por pantalla.

Considera que en cada casilla cabe un carácter. Las casillas que se muestran vacías poseen un espacio en blanco.

Reglas del juego buscaminas en Python

Posiciones de minas

1. Al iniciar tu programa debe solicitar las posiciones donde deben ocultarse las 3 minas. Estas posiciones se deben ingresar en un solo string.

En él se deben indicar las posiciones de las 3 minas (escribiendo primero la fila – letra – y luego la columna – número).

Debes tener cuidado con las posiciones que podrían estar repetidas: en este caso podrían haber menos de 3 minas.

Abriendo casillas

2. Luego, tu programa debe pedir al usuario la casilla que desea abrir. La posición de la casilla debe indicar primero la fila (letra) y luego la columna (número). En este punto, se pueden dar 3 posibles escenarios:

2.1. La casilla no tiene una mina: En este caso tu programa deberá contar en las casillas en torno a la escogida, el número de minas que hay.

De esta manera, el programa le debe mostrar el tablero con ese número en la posición que escogió.

Además, en las siguientes jugadas, el programa debe mostrar el tablero con el valor calculado para todas las casillas ya abiertas.

Ganar y perder

2.2. La casilla no tiene una mina, y es la última que falta abrir: en este caso tu programa debe mostrar al usuario el tablero con un asterisco “*” en las posiciones donde estaban las minas con los valores de las minas entorno de cada casilla.

Abajo del tablero tu programa debe mostrar el mensaje “GANASTE”.

2.3. La casilla tiene una mina: En este caso tu programa debe mostrar al usuario el tablero con un asterisco “*” en las posiciones donde estaban las minas, los valores de las casillas que se alcanzaron a abrir, y un punto para las casillas que no se abrieron.

Abajo del tablero tu programa debe mostrar el mensaje “PERDISTE”.

Buscaminas en Python

Buscaminas en Python - Programación de juego
Buscaminas en Python – Programación de juego

Arriba coloqué el enunciado de este ejercicio, en donde básicamente debemos programar el Minesweeper en Python solicitando las minas al inicio y jugando a través de un tablero.

A continuación veamos la solución al juego:

Lo que hacemos es trabajar con cadenas para parsear o interpretar la entrada de las minas que el usuario quiere colocar y luego usar una matriz o una lista de listas de Python como tablero.

La salida ya la has visto en la imagen que acompaña al encabezado. Me parece que este buscaminas en Python fue la primera implementación que hice de ese juego, y después vinieron las versiones de C y C++.

Te invito a seguir leyendo más ejercicios de Python en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario