Python - Pequeño buscaminas en python con terminal

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Pequeño buscaminas en python con terminal

Publicado por Alvr (4 intervenciones) el 23/02/2021 12:43:58
Hola, estoy haciendo un buscaminas en python sin interfaz grafica, el juego funciona pero me falta acabarlo, me falta un codigo que cuando ponga una casilla en caso de estar vacia pongan los numeros de minas que hay alrededor, como en el buscaminas normal, no se si me explico. Las minas son * y las casillas abiertas son _

1
2
3
4
5
6
7
8
9
10
11
12
def jugada():
	fila=int(input("Fila: "))
	col=int(input("Columna: "))
	if tablero[fila][col]=="m":
		tablero[fila][col]="*"
		return True
	elif tablero[fila][col]==" ":
		tablero[fila][col]="_"
 
	else:
		print("La casilla ya estava abierta.")
		return False

El tablero 10x10 se crea con un bucle for y se colocan las minas con la libreria random. Mi idea seria hacerlo con un bucle para recorrer el tablero pero no se que mas hacer
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pequeño buscaminas en python con terminal

Publicado por joel (901 intervenciones) el 23/02/2021 15:28:10
Yo creo que tienes que crear una función que reciba una posición en el tablero y devuelva las monas que hay alrededor.

Esa función simplemente tiene que mirar a su lado izquierdo, derecho, arriba a la izquierda, arriba, .... es decir, los 8 posiciones que tiene al rededor y devolver el numero de minas que encuentra.

Mira este código para ello https://www.lawebdelprogramador.com/codigo/Python/6695-Buscar-las-minas-en-un-tablero.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pequeño buscaminas en python con terminal

Publicado por Antoni Masana (67 intervenciones) el 23/02/2021 18:29:35
El problema de buscar la minas al rededor de una celda es que entras en un proceso recursivo, me explico.

Supongamos este tablero del juego:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
A   B   C   D   E   F   G   H   I
  +---+---+---+---+---+---+---+---+---+
1 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
5 |   |   |   |   | X |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
7 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
8 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+
9 |   |   |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+---+---+

Seleccionas la celda E5 que es la que esta en medio del tablero.
Pasos a seguir:

1.- Tiene mina. Final del juego
2.- Esta vacia
3.- Recorres las celdas E4 - F4 - F5 - F6 - E6 - D6 - D5 - D4 y cuentas cuantas minas hay en estas casillas.

Si el valor es mayor de CERO pones el numero.
Y si es CERO ahora viene lo dificil. Te posicionas en cada una de la celdas analizadas y recores las celdas de al rededor de cada una de ellas y si no hay minas volvemos a repetir el proceso para ir destapando las celdas en blanco y dejar el muro de numeros.

Un truco: pon las minas despues de seleccionar una casilla y nunca pongas minas en es casilla y despues busca las minas al rededor como hace el juego. En la primera jugada nunca fallas.

Yo lo realice en Visual Basic 6.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Pequeño buscaminas en python con terminal

Publicado por Alvr (4 intervenciones) el 23/02/2021 18:47:01
Lo que me cuesta es recorrer las celdas de la casilla marcada, se necesitan dos bucles for? o ir con ifs y dependiendo de que casilla desmarcar las otras?seria un codigo demasiado largo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Pequeño buscaminas en python con terminal

Publicado por Alvr (4 intervenciones) el 23/02/2021 18:30:22
Si, yo por ejemplo pongo la fila 2 de la columna 5 se deberia destapar las columnas del alrededor es decir fila 2 columna 6 , la fila 2 columna 4
fila 1 columna 5 etc... todas las del alrededor , eso es lo que me cuesta, el codigo del articulo me ha ayudado pero me destapa todas las minas de todo el tablero y solo deberia ser las del alrededor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pequeño buscaminas en python con terminal

Publicado por Antoni Masana (67 intervenciones) el 24/02/2021 18:09:01
Es que la cosa se complica porque cuando estas en el borde del tablero la casillas a revisar disminuyen y si estas en una esquina aun más.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar