Ejercicio: 3Eva2006TI_T4 Juego planta bombas (buscaminas)
Nota: contiene tareas por realizar, revisar comentarios en las instrucciones
Algoritmo en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IT2006_T4 Juego planta bombas (buscaminas)
# propuesta: edelros@espol.edu.ec
import numpy as np
import random as rnd
def plantabombas(m,n):
campo = np.zeros(shape=(n,n),dtype=int)
bomba = 1
while not(bomba>m):
fila = int(rnd.random()*n)+0
columna = int(rnd.random()*n)+0
if (campo[fila,columna] == 0):
campo[fila,columna] = 1
bomba = bomba + 1
return(campo)
# PROGRAMA --------------
# INGRESO
n = int(input('tamaño de tablero[n,n]: '))
m = int(input('cantidad de minas:'))
# TAREA: validar que la cantidad de minas
# sea menor que casillas en tablero
f = int(input('coordenada fila:'))
while not(f>0 and f<(n-1)):
f = int(input('coordenada fila:'))
c = int(input('coordenada columna:'))
while not(c>0 and c<(n-1)):
c = int(input('coordenada columna:'))
# PROCEDIMIENTO
# Crear tablero con bombas
territorio = plantabombas(m,n)
# solamente si no hay bomba al aterrizar reporta
if (territorio[f,c] == 0):
vertical = territorio[f-1,c]+territorio[f+1,c]
horizontal = territorio[f,c-1]+territorio[f,c+1]
# TAREA: Completar las casillas en diagonal
reporta = vertical + horizontal
else:
reporta = -1
# SALIDA
print('reporte de llegada: ',reporta)
print('territorio: ')
print(territorio)
Ejemplo, aún falta desarrollar la parte de tarea:
tamaño de tablero[n,n]: 8
cantidad de minas:40
coordenada fila:3
coordenada columna:3
reporte de llegada: 4
territorio:
[[1 1 0 1 1 1 1 1]
[1 0 1 0 0 1 1 1]
[0 1 1 1 1 1 1 0]
[1 1 1 0 1 1 0 1]
[0 1 0 1 1 1 0 0]
[1 0 0 0 1 0 0 0]
[1 0 1 0 0 1 1 1]
[1 1 0 1 1 0 0 1]]
>>>