-
Notifications
You must be signed in to change notification settings - Fork 0
/
flags_or_look.py
38 lines (30 loc) · 1.21 KB
/
flags_or_look.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import sys
import minas
import matriz
import cons
def traducir_fila_columna(posicion):
"traduce la fila y la columna en la matriz a partir de la posicion ingresada por el usuario"
return cons.ABC.index(posicion[0])+1, posicion[1]
def colocar_quitar_bandera(M,posicion):
"coloca o quita una bandera en la posicion"
fila, columna = traducir_fila_columna(posicion)
posicion_matriz = M[fila][columna]
if posicion_matriz == cons.VACIO:
M[fila][columna] = cons.FLAG
elif posicion_matriz != cons.FLAG:
return M
else: # la posicion contiene una bandera
M[fila][columna] = cons.VACIO
return M
def look(M,posicion,mapa_minas):
"devela el contenido de la posición: mina o cantidad de minas limítrofes"
fila, columna = traducir_fila_columna(posicion)
posicion_matriz = M[fila][columna]
if posicion_matriz == cons.FLAG:
print("\n>Se debe quitar una bandera antes de poder develar una posición<")
elif minas.contiene_mina(posicion,mapa_minas):
minas.agregar_minas_en_tablero(M,mapa_minas)
sys.exit('\nPerdiste :(\n*FIN DEL JUEGO*')
else:
M[fila][columna] = minas.minas_limitrofes(posicion,mapa_minas)
return M